Some very good thinking in this article. The author takes some serious steps toward defining effective microservices architectural constraints. My only substantive criticism relates to Decision 1: Handling no shared database(s). The problem space being addressed by microservices does not always lend itself to this constraint. Constraints are useful in architectures only when they facilitate meeting the resulting application’s functional requirements. My team is working toward isolating databases in their own services while still supporting horizontal scaling through asynchronous multi-database synchronization. The author’s Option 2: Use Compensation and other lesser Guarantees is fundamental to the approach we’re taking to achieve rapidly eventual consistency without distributed transactions.

I’m a US Army veteran of the Vietnam War, have a wonderful wife and family, am a working software engineer, and a committed citizen.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store