Microservices, assemble!
It's no secret to any of you that business requirements or existing flows can change, sometimes on a daily or weekly basis. As such, development teams are compelled to adapt to changing circumstances by extending new functionality into a given service or by altering its capabilities to meet both existing and new challenges. Unfortunately, it's not always so simple to extend functionality or revise existing solutions within our applications. We may have portions of our code base that are generic but intertwined and dependent on the execution of some other component.
When starting a project, when the focus is narrow, the code base can be very manageable and somewhat self-contained since it should encapsulate all of the base functionality outlined in the discovery process. Over time, additional functionality and components are added such that the code base and build, integration, and test processes can become cumbersome to manage or decouple. With...