Member-only story
The Steps I Take to Transition from SOA to Microservices
Sometimes, there are better solutions than services for managing a codebase.
More defined boundaries between services can improve the coupling problem.
The size of each service should match the structure of the team managing it. If a codebase is too large for a small team to handle, it makes sense to break it down into more minor services. In a monolithic application, only one point of access is usually available.
As applications grow, their complexity increases, both accidentally and intentionally.
Additionally, confidence often decreases unless there’s a suite testing many services. The idea that services are the only way to isolate complexity isn’t entirely accurate; this can be achieved without using services.
The key is that the team agrees on a straightforward interface for communication among different areas.
That interface should be a domain event, the highest level of decoupling between sub-modules within a system.
By applying these principles to existing code, each piece can have a known set of inputs and a single output, the domain event. Yet, this approach requires a level of discipline that many teams may not be used to.