When the list moves into the bus The same message bus twice: as it was meant to work, and after a few successful years. THE BUS AS INTENDED Everyone knows topics on the bus. Nobody knows each other. MESSAGE BUS Order placed the bus keeps no list: it never knows who listens Parcel sent Order workflow announces on the bus: Order placed has to know, by name: no other service Shipping announces on the bus: Parcel sent Paymentlistens: Order placed Inventorylistens: Order placed Loyaltylistens: Order placedNEW Emaillistens: Parcel sent not touched 0 services the bus has to know by name It carries topics. Who listens is not its business. Order workflow and Shipping announce, the others listen.The bus keeps no list and knows no service by name. Its catch: nobody can see the whole process. No place sayswhat happens after an order, and in which order. Here each service still decides for itself what a topicmeans for it. The bus only carries. Loyalty joins and starts listening. Nobody is touched,and nobody has to be asked. Easy to join, hard to oversee: the process exists onlyas the sum of what every listener does. Everyone knows topics. The bus keeps no list. STRENGTHA newcomer plugs in without anyonebeing touched. WEAKNESSNobody can see who depends on a topic. Changingwhat it means can break listeners nobody knew about. THE SAME BUS, A FEW YEARS ON The list of who has to know whom has moved into the bus. MESSAGE BUS Order placed the bus keeps no list: it never knows who listens Parcel sent has to know, by name: Order placed:Payment, then Inventory Orders over 500:Inventory, then Payment Parcel sent: Email + Order placed, also:Loyalty, after Payment Order workflow announces on the bus: Order placed has to know, by name: no other service Shipping announces on the bus: Parcel sent Paymentlistens: Order placedcalled by the bus Inventorylistens: Order placedcalled by the bus Loyaltycalled by the busNEW Emaillistens: Parcel sentcalled by the bus Bus teamowns the list the change waits here must be changed 0 2 3 4 services the bus has to know by name It carries topics. Who listens is not its business. Who gets what, in which order, under which condition. Year one, the same bus. But nobody can see the wholeprocess, and somebody wants it in one place. "Just this once, the bus can route it." The first line goesinto the bus, where everything passes anyway. It works, so the rest follow. The bus now has to know everyservice by name, and a bus team owns the list. Loyalty joins. The bus gets a new line: it must be changed,and that change waits for the bus team. A few years on. The whole process stands in one place, andevery change to it waits for a team that owns no workflow. The list lives in the bus. A bus team owns it. STRENGTHOne place finally shows the whole process:who gets what, in which order. WEAKNESSEvery change to any workflow waits for the teamin the middle, which owns none of the workflows. orange = "has to know", and the list that holds it a connection cyan = shared infrastructure