Direi che ci siamo, dato il contesto che abbiamo ipotizzato i nostri attori sono i seguenti:

  • Marketing
  • Warehouse
  • Sales
  • Shipping
  • Publishing

image

La cosa importantissima che abbiamo identificato a questo punto, e che è la base fondante di un buon design, sono i rispettivi Owner dei vari modelli. Ognuno degli attori in gioco è responsabile di un pezzetto dell’informazione che vediamo stilizzata nella figura di cui sopra, e “Publishing” è responsabile non del tutto, come purtroppo l’immagine lascia intendere (non ho trovato un modo migliore per rappresentarlo), ma solo ed esclusivamente del dettaglio se il prodotto sia disponibile per l’acquisto o meno.

Abbiamo delle classi?

Stiamo parlando di modelli, ma in realtà stiamo discutendo di modelli in termini SOA, quindi no, non abbiamo delle classi; abbiamo piuttosto identificato i servizi, i quali a loro volta possono contenere uno o più aggregati e da zero a n modelli in lettura (benvenuto CQRS).

Alla fine del processo di decomposizione abbiamo quindi:

  • MarketingService
  • WarehouseService
  • SalesService
  • ShippingService
  • PublishingService

Siamo autorizzati a cominciare a pensare in termini tecnologici :-)

Post in questa serie: