Chapter 9. Going to Town on the Message Bus
In this chapter, we’ll start to make events more fundamental to the internal structure of our application. We’ll move from the current state in Figure 9-1, where events are an optional side effect…
Figure 9-1. Before: the message bus is an optional add-on
…to the situation in Figure 9-2, where everything goes via the message bus, and our app has been transformed fundamentally into a message processor.
Figure 9-2. The message bus is now the main entrypoint to the service layer
Tip
The code for this chapter is in the chapter_09_all_messagebus branch on GitHub:
git clone https://github.com/cosmicpython/code.git cd code git checkout chapter_09_all_messagebus # or to code along, checkout the previous chapter: git checkout chapter_08_events_and_message_bus
A New Requirement Leads Us to a New Architecture
Rich Hickey talks about situated software, meaning software that runs for extended periods of time, managing a real-world process. Examples include warehouse-management systems, logistics schedulers, and payroll systems.
This software is tricky to write because unexpected things happen all the time in the real world of physical objects and unreliable humans. For example:
-
During a stock-take, we discover that three
SPRINGY-MATTRESSes ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access