Microservices Design
​
​
At most companies, large and small, there is one persistent problem; lack of documentation of any kind.
​
This was literally the case when I joined a big US bank to work on their Capital Markets Analysis publishing system. The core system was used by about $4-5K global employees who lived and died by the system availability, hanging on by the goodwill of the "regional servers”, metaphorically speaking.
​
When I joined there was not even a single page of support documentation, nothing, nada. We had to create everything from scratch. While reverse-engineering the system from its logs and code over the next 6 months I was able to sketch out the basic physical and logical architecture of the system.
​
It turned out it was so convoluted that it almost appeared that it was so on purpose. At least that was my initial reaction, later, I realized the pseudo-design was not on-purpose there simply was no design. This is what happens when you have a group of developers design a full-scale system ad-hoc without any oversight.
​​
Obviously they all bailed out before this was discovered so there was no “warranty” to be claimed by the users.
Actually, I was hired as the warranty underwriter, so to speak. My task was to provide the warranty, i.e., fix whatever needed fixing.
​
My solution, to break the monolith into microservices, is documented in this writeup. It gives the clean, short, easy-to-follow story of how this was done.
​
Monolith to Microservices Phased Journey​​​​​​
​