Evolution of scalable distributed systems
– — – — – — – — – — – —
A #startup. got 1k customers and want to engage and serve them in better way so they developed #mobileapplications.
– — – — – — – — – — – — –
They built native mobile applications for #android. using #java #kotlin. and #ios. using #swift. , In backend they used java , spring along with single server deployment and single #database.
– — – — – — – — – — – — – —
They realised its taking double effort everytime. whenever new features getting build
– — – — – — – — – — – — – —-
They had internal and external meetings and got to know there are frameworks like #reactnative. , #flutter. etc which can be used to build single code base application and native to Android and ios devices with performance and experience closer to 95% with existing application
– — – — – — – — – — – — – —
They quickly finalised the #flutter. considering its backed by #google. and saving half of development time
– — – — – — – — – — – — – -
Slowly their customer started increasing to 10K and single serve not able to server all requests so they introduced #loadbalancer. and everything is fine for few months
– — – — – — – — – — – — – —-
Now they wanted to use payments and multiple 3rd party services, they build all new services in single backend so they can quickly serve the new features
– — – — – — – — – — – — – — – —
After sometime they realised they are taking frequent downtimes as any change in code require complete backend deployment
– — – — – — – — – — – — – — –
So they started exploring option to deploy only services which got changed not all and got to know their is concept called micro -services architecture and quickly finalised #springboot. to buid #microservices
– — – — – — – — – — – — – — – -
Now they have multiple services and deployment taking much times for individuals so they introduced #jenkins. for auto deployment or one click deployment
– — – — – — – — – — – — – — – — – —-
Considering no of services are more now as they have broken into #microservices. , they need multiple servers to run. because they can’t use the same server as few services may be using different versions of java
– — – — – — – — – — – — – — – — –
So they introduced #docker
– — – — – — – — – — – — – — – — – -
I hope you have Enjoyed. till now ☺️
Will Continue this journey in next post in few days