Introduction
I just stumbled upon an excellent InfoQ article this morning describing a new approach and model for designing guaranteed data-consistent microservices called RIG
. I'm not going to paraphrase the article; it's well-written and if you work with microservices or modular monoliths, I highly recommend you read it. These are my first thoughts and takeaways...
[Full article at InfoQ here] : Author Kaj Bromose : 30th May 2024
First Impressions
My own background includes consulting on and building a variety of microservices-based systems. I've been involved in many senior architectural discussions and workshops describing microservices. I can’t believe I’ve never heard of or used anything as simple as RIG rules
before. If you know of similar methodologies then ...
I’m super impressed by how simply RIG surfaces (highlights) the constraints around data consistency. RIG provides clear, understandable rules for evaluating whether a collection of microservices is robust and consistent under complex conditions. If you need to verify or audit a large-scale, distributed microservices environment, I think RIG will be an invaluable tool.
RIG rules look impressively easy to understand and possibly to use. After reading this article, I’m very keen to discuss with colleagues and experiment with RIG to audit a large suite of collaborating microservices.
What’s great is that when you read the article, everything looks and feels very “common sense.” It all looks, feels, and sounds right—no invented or magical names you need to memorise. The core ideas are simple enough to perform an audit and then share the results with your organisation (for example, in a workshop or a report) along with a small legend, making it self-explanatory. That's very rare, and incredibly valuable.
Parting Thoughts – Self-Diagnosing Services
At the bottom of the article, Kaj Bromose suggests an interesting idea: make your services “pingable” and have each one report its RIG status (i.e., R, I, or G) via their health checks. You can then dynamically inspect the RIG fitness of all your services end-to-end in real-time.
This opens up some really interesting opportunities. ❤️
If I convince my next employer to run a timeboxed experiment to audit a set of collaborating services using this approach, I'll drop an update here. watch this space ;D