Nordlicht Reisen GmbH, a fictional travel agency, is rebuilding its booking system. A booking should no longer send the confirmation email, update accounting and feed reporting in a single call. Instead it should raise an event that each recipient reacts to at its own pace. In addition there is the portal's web telemetry and new files arriving in storage. Azure has several services for this, and they overlap. This lesson chooses by requirement.

Prior knowledge. What messages, queues, topics and "at least once" are, and how the four services compare from a developer's point of view, is taught in "K3, lesson 3.5.1"; Service Bus in use in "K3, lessons 3.5.2 to 3.5.5", Event Grid in "K3, lesson 3.5.6". That delivery is never exactly once, and how outbox and inbox absorb that, is shown in "K4, lesson 4.6.1" to "4.6.3"; events as an architecture style in "K4, lesson 4.11.3". None of that is repeated here. What is new is the choice on paper: which service carries which requirement, and which limit tips the decision.

The requirement

All numbers are assumptions of the exercise, not measured. Rows G-01 to G-10 from lesson 0.2 apply; G-08 (data stays in the EU) and G-09 (load up to ten times normal) matter most here.

No. Requirement Type Metric Weight Source
4.5-01 The booking confirmation is not lost even at peak load. Q no lost message at ten times normal load (G-09); assumption Must Management
4.5-02 One booking triggers three independent reactions: email, accounting, reporting. F three recipients, each at its own pace; assumption Must Sales
4.5-03 Changes to the same booking arrive in the order in which they occurred. Q order per booking number; assumption Must Accounting
4.5-04 The payment notification from the payment provider (G-07) must not be booked twice. Q no double booking when the notification is repeated; assumption Must Accounting
4.5-05 The portal's web telemetry is ingested during campaign peaks and can be rewound three days. F 2,000 events per second, 72 hours of rewind; assumption Should Sales (G-10)
4.5-06 A new contract file in storage (G-06) starts a check. F start within 1 minute of saving; assumption Should Operations
4.5-07 The messaging services are reachable only from the company's own network. R no public access; assumption Should Data protection
4.5-08 A booking message with travel documents grows up to 400 KB. Q largest message 400 KB; assumption Must Sales
4.5-09 Messages and events stay in the EU (G-08). R region in the EU Must Data protection