The Teaching Hub
DB: …

Lab: E-commerce Order Processing

Percorso tipico: ordine piazzato → pagamento → inventario → notifica: eventi orchestrano servizi senza orchestratore monolitico.

Approfondimento

Definizioni, contesto e collegamenti tra concetti — leggi prima del palcoscenico interattivo se parti da zero.

Ordine come coreografia

Nel lab semplificato, `order.placed` innesca una catena di eventi senza orchestratore centrale: ogni servizio reagisce e pubblica il passo successivo. È coreografia: meno single point of failure, ma il grafo delle dipendenze va documentato.

Quando servono transazioni distribuite con compensazione esplicita (annulla prelievo se inventario fallisce), valuta saga orchestrata o coreografia con passi di compensazione progettati a tavolino.

UI e read model

La UI non deve ascoltare ogni micro-evento interno: spesso si sottoscrive a un read model `order_status` denormalizzato che il prodotto espone già pronto per la chip di stato. Riduci rumore e accoppiamento tra schermata e grafo interno.

Palcoscenico

Order API

Pubblica `order.placed`

Event Bus
Notifiche
Fatturazione
Magazzino

Messaggio replicato in parallelo verso consumer indipendenti

Contratto e codice

Schema JSON basato su CloudEvents 1.0, poi snippet server e client.

{
  "specversion": "1.0",
  "source": "/orders-service",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "time": "2026-05-13T12:00:00.000Z",
  "datacontenttype": "application/json",
  "type": "com.example.order.placed",
  "data": {
    "orderId": "ord_1001",
    "customerId": "cus_77",
    "totalCents": 4990
  }
}

Lab: coreografia ordine (happy path)

Catena di handler: ogni step pubblica il prossimo evento. In produzione aggiungi compensazioni (saga) dove serve.

Caricamento playground…