We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
How building a portable escape room made me a better microservices developer - William Brander
Learn how building a portable escape room led to key microservices insights, from defining service boundaries and monitoring distributed systems to managing complex state flows.
-
Service boundaries should align with business rules to keep complexity encapsulated and maintain simpler consistency boundaries
-
When monitoring distributed systems, consider:
- The area (infrastructure, application, capability)
- The concern (health, performance, capacity)
- The interaction type (passive, reactive, proactive)
-
Queue length alone is not enough for monitoring - also consider processing time, critical time, and message age in queue
-
The messaging bridge pattern allows integrating different messaging technologies (like MQTT and RabbitMQ) without either system needing to know about the other
-
Keep aggregate roots simple and well-defined around clear business capabilities rather than technical boundaries
-
State machines (like the escape room run controller) can manage complex flows while keeping individual components simple and focused
-
Use polyglot messaging to let each component use the most appropriate messaging technology for its needs
-
Service boundaries should be defined by verbs (actions/capabilities) rather than nouns (entities)
-
When modernizing legacy systems, use messaging bridges to gradually migrate components without big-bang rewrites
-
Monitoring should provide actionable insights beyond basic health checks - look for patterns and trends that indicate potential issues