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 |