Domain Driven Design + Command Query Responsibility Segregation + Event Sourcing = l’architettura...

14
Domain Driven Design Massimo Nardelli Valerio Del Bello + Command Query Responsability Segregation Event Sourcing L’ARCHITETTURA DEL FUTURO + =

Transcript of Domain Driven Design + Command Query Responsibility Segregation + Event Sourcing = l’architettura...

Domain Driven Design

Massimo NardelliValerio Del Bello

+Command Query Responsability Segregation

Event Sourcing

L’ARCHITETTURA DEL FUTURO

+

=

PROBLEMA

RobustezzaFlessibilitàPrestazioniScalabilità

MonitorabilitàAffidabilità

Event Sourcing

CQRS

DDDContext Mapping

C O M M A N DEVENT MANAGER

Bounded Context

exagonal architectursQUERY

aggregate

message busDomain Event

Process Manager

SOLUZIONE

microservice

SOAPorts & Adapter

dumb pipe

message drivenevent driven

EVENT STOREEventual Consistency

big dataData Lake

DOMAIN EVENT

Context Map

bounded context

AUDIT

commandReactive Manifesto

Value Object

DISTRIBUTED TRANSACTIONaudit

aggregate

context map

REACTIVE MANIFESTO

SOA

CONTESTO

BBM

Shared Kernel

ACL

QUADRO GENERALE

UI

MS WS

REST

CO

MM

AN

D M

OD

EL

QU

ER

Y M

OD

EL

DB

EVENT

EVENT

EVENT

QUERY

Strato Applicativo

Dominio

Infrastruttura

COMMAND

Ada

pter

Ada

pter

AdapterAdap

ter

EV

EN

T

Adapter

Adapter

EV

EN

T

Sistemi Esterni

EV

EN

T M

OD

EL

COMMAND MODEL

Command Handler

Aggregate

CO

MM

AN

D B

US

COMMAND

Ad

ap

ter

AGGREGATE

ESEGUI CMD

APPLY

RISPETTA INVARIANTE?

RIFIUTO

EVENTS

No

Lo vediamo dopo…

COMMAND

EVENT MODEL

EVENT BUS

QU

ER

Y M

OD

EL

CO

MM

AN

D M

OD

EL

QU

ER

Y M

OD

EL

Sistemi Esterni

EVENT STORE

Adapter

Process Manager

CO

MM

AN

D B

US

EV

EN

T B

US

Event Handler

EVENT MODEL

AGGREGATE

ESEGUI CMD

APPLY

AGGIORNAMENTOSTATO INVARIANTE

Given

When

Then

EVENT MODEL

QUERY MODEL

EV

EN

T B

US

Query Aggregate

QUERY PERSISTENCE

Event Handler

Query Processor

QU

ER

Y B

US

QUERY

Ad

ap

ter

QUERY PERSISTENCE

Query Aggregate

QUERY MODEL

Massimo [email protected]: @maxnardelli

Valerio Del [email protected]

Twitter: @ValerioDelBello

Miriam [email protected]