Building service is easy. Isolating that service, it’s easier said than done. Anyone can build any service with any technology or stack. However, would this service last, or will it become technical debt? Many organizations trying to go all in with microservices end up with distributed monoliths instead of isolated services. By Diego Pacheco.
Because code isolation is not enough. We need to isolate the 3 frontiers being:
- Contracts
- Databases
- Internal shared libraries
Shared database is the most common mistake companies make. They create new services, but all share the same databases. Fixing this problem is hard. But possibly, there are patterns and approaches we do to fix database sharing. Like the Strangler Fig Pattern and many data migrations patterns.
Contracts matter more than implementation. Services are composed of 2 elements. The service contract and the service implementation. Contracts are the most important piece. Period.
Isolating internal shared libraries. This is the most controversial yet big problem all companies face, but only some realize how bad it is. Internal common shared libraries, most of the time, are evil and bring more problems them solutions. Authort lost count of how many companies, products, and projects he worked on that had bad libraries. They are everywhere in the industry. Interesting read!
[Read More]