Slide 1

Slide 1 text

Design principles for an event driven architecture Madrid Apache Kafka Meetup Luis García & Pablo Ruiz - ING October 2019

Slide 2

Slide 2 text

Introduction 2 There is a perfect pairing between microservice-based architectures, Domain Driven Design (DDD) and event-driven architectures

Slide 3

Slide 3 text

3

Slide 4

Slide 4 text

Event Taxonomy 4 Purpose Driven Technical Meaning Driven Business Domain Raw Native Standardized Atomic raw domain Derived (*) business

Slide 5

Slide 5 text

Taxonomy at microservice level 5 (*) each bus represents one specific topic in the Event Bus Domain API BB viewed from the outside Business Technical API Storage Bus Connector CORE Raw Domain Building Block internals Business Technical

Slide 6

Slide 6 text

Standard language 6 API Call API Call Ubiquitous Language Ubiquitous Language Ubiquitous Language Standard Language

Slide 7

Slide 7 text

Bounded Context Bounded Context Cohesion (strong) 7 Producer Consumer Schema Registry Send Schema Read Schema DB DB

Slide 8

Slide 8 text

Reference Data 8 Building Block A Building Block B Master Reference Data Building Block C Datalake

Slide 9

Slide 9 text

Coupling (loose) 9 Product A transaction received Fraud Engine transaction received Fraud Alert!! Communications transaction received Contact customer!! Channel Gateway Contact customer!!

Slide 10

Slide 10 text

Correlation & Inference 10 Domain A Event A Domain B Domain C Event B Domain A Event A Domain B Domain C A & B A & NOT B

Slide 11

Slide 11 text

Traceability & Lineage 11 Domain A Event Id: 1 TraceID: 1 Domain B Domain C Event Id: 2 TraceID: 1 Event Id: 3 TraceID: 1 Event Id: 4 TraceID: 1 Domain D Event Id: 5 TraceID: 5

Slide 12

Slide 12 text

Aggregation / enrichment 12 Domain A Domain B Domain C Name: Peter Surname: Parker Job: Photographer Name: Peter Surname: Parker Alias: Spiderman Domain D Name: Peter Surname: Parker

Slide 13

Slide 13 text

Orchestration 13 Orchestrator Generate Monthly Extract Product A Product B Document Mgm Product A movements Product B movements Statement request with Product A&B movements

Slide 14

Slide 14 text

Choreography 14 Product A transaction received Category Service transaction received transaction categorized Customer Reporting transaction received transaction categorized

Slide 15

Slide 15 text

Reconciliation 15 Domain A Domain B Domain C Domain D Reconciliation? Reconciliation?

Slide 16

Slide 16 text

Privacy / Data Segregation 16 Producer Clear Message Clear Message Producer Consumer Name: Clark Surname Kent Income: 1234.00 Name: Clark Surname Kent Income: 1234.00 Other Consumer Name: **** Surname ***** Income: 1234.00 Consumer Other Consumer

Slide 17

Slide 17 text

Technical/Business Monitoring 17 Domain A Domain B Domain C Alerting

Slide 18

Slide 18 text

How EDA impacts a microservice based architecture 18 Feature EDA impact Loosely coupled Location transparency Strong cohesion Organized around business capabilities Each service is independently deployable Highly maintainable – Easy to maintain Highly testable – Easy to test Each service is as simple as possible Data Management Transaction Management

Slide 19

Slide 19 text

Thank you!! Questions? 19