What I learned from building large scale micro-services?
Feb 23, 2017 · 1 min read
In my current company we ended up with 50+ micro services most of them communicate by either invoking rest calls of other services or over Kafka. They also talk to MongoDB, MySQL and Elastic Search. All of them attributes below features
- They are all multi-tenant
- They authenticate using single sign-on
- They are all stateless over the REST
- Configurations of these services can be changed dynamically
- They are implemented in various different programming models(Java, NodeJs and Python)
- REST Requests comes from either Angular based UI, Mobile app or internal release tools
Managing such a heterogeneous micro-services has its own problems, such as
- How do you maintain contract of each micro service
- When few micro services release breaking changes how do you support backward incompatibility
- How do you share business entities(objects schema) among services
- Business is dynamic so does the boundaries of your services, how do you manage the scope of your services
- How do you reverse database state when few services are down intermittently
Though the micro service architecture provides huge benefits it is very important to assess above concerns before one starts full-fledge development.
Happy micro servicing ☺