We have seen how to design platform architecture with multiple apps, we understood pros and cons of that approach in my previous article, Read it from below link
For applications like Amazon, Netflix, Linked in the backend systems deals with billions of requests per second. It is not possible to handle such a huge traffic by having one consumer app or one seller app. The solution to such a huge systems is micro service architecture.
Probably Amazon has mastered in Micro Service Architecture which runs over more than 500 micro services, similarly Netflix has over 500 micro services and their API Gateway handles over 2 billion requests daily – Source
So dividing Amazon kind of apps into multiple micro services may have following services
Amazon Kind Of Platforms Micro Services
- User & Identity Management Micro Service
- Product Management Micro Service
- Order Management Micro Service
- Payment Management Micro Service
- Delivery Management Micro Service
- Data Mining Micro Service
- AI Micro Service
The Micro Service Architecture Looks as follows for Amazon Kind of Platforms
Advantage of Micro Service Architecture
Highly Scalable: Systems of this kind are highly scalable, capable to handle billions of requests every day
Heterogenous Technology: Another major advantage is we can develop each micro service using different technology whichever is suitable for it. Example Order Management you can develop using nodejs and MongoDB, however for data mining management, you can use python and MongoDB. For payment management you can use Java with Postgres SQL
Easy to Build and Maintain: Your development team might have spread across the world, it is easy to maintain and build any service any time
Ever Evolving: Every micro service can evolve at any great extent without affecting other systems
After knowing all of these the question arises, is Micro Service architecture is the best? Should Every App has to adopt to it ?
The answer is NO : Architecture of every platform greatly varies depends upon the needs of the platform. Micro Services approach is suitable for highly scalable systems, however for smaller platforms having multiple apps under same platform is suitable.