Two questions come up every time: how does this compare with the architectures I already know, and how does it hold up at scale? Here are both, in full.
The home-page diagram shows the two endpoints of a spectrum. Here is the whole spectrum: how each arrangement performs, and — since it tracks closely — what each means for how you organise the code.
Services call each other directly.
Client → API → services → one shared database.
Everything integrates through a central broker.
Producers publish; consumers subscribe.
Each capability owns its data; curated REST in, events out.
As you move down the list you trade immediacy and simplicity for decoupling and independent evolution. Point-to-point and shared-database are cheapest on day one and most expensive at scale; capability-driven inverts that — more design cost upfront, far lower cost of change later. And repository independence tracks runtime decoupling: the looser the coupling, the smaller the shared surface, until the only thing shared is a versioned contract and every repo — and the team behind it — can move on its own clock.
The constraints the model imposes on day one — own your data, talk through events, share no database — are the same ones global scale forces on every architecture eventually. Most systems reach them painfully after they go multi-region. A capability-driven system starts there.
The bottom line. The model doesn't make global scale free — it relocates the difficulty to one well-understood place, the event bus and its schemas, instead of spreading it across a shared database and a call mesh. At global scale, that's the trade you want.