14. Client 1 …. Client N
Mainframe
1
Mainframe
n
….
15. Client 1 …. Client N
Third
party 1
Third
party N
….
Mainframe
1
Mainframe
n
….
16. Client 1 …. Client N
Third
party 1
Third
party N
….
Mainframe
1
Mainframe
n
….
Platform
Domain1 …
Domain1
Domain1
Domain1
Domain1
Domain2
Domain1
Domain1
DomainN
17. Client 1 …. Client N
Third
party 1
Third
party N
….
Mainframe
1
Mainframe
n
….
Platform
Domain1 …
Domain1
Domain1
Domain1
Domain1
Domain2
Domain1
Domain1
DomainN
19. DEFINITIONS
“Event Sourcing ensures that all
changes to application state are
stored as a sequence of events. Not
just can we query these events, we
can also use the event log to
reconstruct past states, and as a
foundation to automatically adjust the
state to cope with retroactive
changes.”
Martin Fowler
EVENT SOURCING
Command and Query
Responsibility Segregation (CQRS)
is a pattern that segregates the
operations that read data (queries)
from the operations that update
data (commands)
CQRS
26. HOW DO WE PUT THE PLATFORM INTO PRODUCTION?
Client 1 …. Client N
Third
party 1
Third
party N
….
Mainframe
1
Mainframe
n
….
Platform
Domain1 …
Domain1
Domain1
Domain1
Domain1
Domain2
Domain1
Domain1
DomainN
48. WHAT HAPPENS WHEN SOMETHING GOES WRONG?
Client 1 …. Client N
Third
party 1
Third
party N
….
Mainframe
1
Mainframe
n
….
Platform
Domain1 …
Domain1
Domain1
Domain1
Domain1
Domain2
Domain1
Domain1
DomainN
49. WHAT HAPPENS WHEN SOMETHING GOES WRONG?
Client 1 …. Client N
Third
party 1
Third
party N
….
Mainframe
1
Mainframe
n
….
Platform
Domain1 …
Domain1
Domain1
Domain1
Domain1
Domain2
Domain1
Domain1
DomainN
89. ABILITY TO FIND THE ORIGIN OF A REQUEST
Client 1 …. Client N
Third
party 1
Third
party N
Mainframe
1
Mainframe
N
….
Platform
Domain1 …
Domain1
Domain1
Domain1
Domain1
Domain2
Domain1
Domain1
DomainN ….
90. ABILITY TO FIND THE ORIGIN OF A REQUEST
Client 1 …. Client N
Third
party 1
Third
party N
Mainframe
1
Mainframe
N
….
Platform
Domain1 …
Domain1
Domain1
Domain1
Domain1
Domain2
Domain1
Domain1
DomainN ….
91. ABILITY TO FIND THE ORIGIN OF A REQUEST
Client 1 …. Client N
Third
party 1
Third
party N
….
Mainframe
1
Mainframe
N
….
Platform
Domain1 …
Domain1
Domain1
Domain1
Domain1
Domain2
Domain1
Domain1
DomainN
92. ABILITY TO FIND THE ORIGIN OF A REQUEST
Client 1 …. Client N
Third
party 1
Third
party N
….
Mainframe
1
Mainframe
N
….
Platform
Domain1 …
Domain1
Domain1
Domain1
Domain1
Domain2
Domain1
Domain1
DomainN
TraceID
TraceID
TraceID
TraceID
TraceID
100. KEY LEARNINGS
CQRS & Event Sourcing heavily influenced the deployment, logging,
monitoring & debugging of this system
Blue/Green was best given our constraints
Log aggregation was not enough for us. Also needed monitoring
and distributed tracing.
Invest in making the system resilient and the tools accessible
101. For questions or suggestions:
swatro@stridenyc.com
mgomez@thoughtworks.com
THANK YOU