The False Dichotomy of Monoliths and Microservices

When learning about microservices, you're nearly always introduced to the concept of a monolith. If you're not doing microservices, you're building a monolith. If you're not building a monolith, you must go with microservices. If you're building a monolith, perhaps you're doing it well and it's a majestic monolith. From my early encounters with microservices, this dichotomy bothered me. The discussion of a monolith was nearly always focused on its [Read More]

My Microservices FAQ

Mainly because I get asked all the time about microservices and I'm tired of having to remember on the spot: What is a microservice? A microservice is a service with a design focus towards the smallest autonomous boundary. What is a service? (From Clemens) A service is software that: is owned, built, and run by an organization is responsible for holding, processing, and/or distributing particular kinds of information within [Read More]

Designing Microservice Messages: A Primer

When you move from monoliths to microservices, and your services aren't 100% isolated from each other, eventually you need your microservices to communicate. They need to expose their capabilities to other applications and systems, and when you get to this point, you need to design their means of communication. Microservices doesn't prescribe a specific mode of messaging (nor should it), and I personally like the presentation "Messaging and Microservices" (slides) [Read More]

Composite UIs for Microservices - Data Composition

Posts in this series: A primer Composition options Client composition Server composition Data composition In the last post, we looked at composing at the server side, both through composing through widgets/components, and then for data sources for a widget themselves, using model composition to pull data from multiple sources into a single model. In model composition, a single set of inputs fans out to multiple services for data, returned [Read More]

Composite UIs for Microservices - Server Composition

Posts in this series: A primer Composition options Client composition Server composition Data composition In the last post, we looked at techniques for composing on the client side. One of the issues we saw is there aren't really a lot of tools to perform composition, nor are there explicit building blocks to do so. The story is largely the same on the server side, where we don't have a lot [Read More]