cqrs and event sourcing microservices data patterns · microservices data patterns: cqrs and event...

74
MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier, Principal Software Engineer, Red Hat

Upload: others

Post on 25-May-2020

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

MICROSERVICES DATA PATTERNS:CQRS AND EVENT SOURCING

Edson Yanaga, Director of Developer Experience, Red HatClement Escoffier, Principal Software Engineer, Red Hat

Page 2: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

http://developers.redhat.com/promotions/migrating-to-microservice-databases

https://developers.redhat.com/promotions/building-reactive-microservices-in-java

Page 3: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Code is easy,State is hard

Page 4: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

How was data managed 10 years ago

Page 5: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

<Entity>

Page 6: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

<Entity>

@Entity

Page 7: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

POJOs as an (Anemic) Domain Model

<Entity>

@Entity

Page 8: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Event Sourcing

Page 9: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Account

ID CUSTOMER_ID BALANCE

1001 990 1000

1002 991 0

1003 991 -500

1004 992 300

Page 10: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Transactions

ID ACCOUNT_ID TIMESTAMP OP BALANCE

1 1001 1234567890 C 1000

2 1002 1234567891 C 200

3 1001 1234567900 D 300

4 1001 1234567995 D 150

Page 11: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Transactions are events

Account: 1001Op: C

Amount: 1000

‘567890‘567891

Account: 1002Op: C

Amount: 200

Account: 1001Op: D

Amount: 300

‘567900‘567995

Account: 1001Op: D

Amount: 150

Page 12: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Command-Query Separation

“Asking a question should not change the answer” (Bertrand Meyer)

Page 13: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

void insert(K key, P record); void delete(K key); void update(K key, P record);

Optional<P> find(K id); Cursor<P> all();

Write API

Read API

write

read

Page 14: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Command-Query Responsibility Segregation

(CQRS)

Page 15: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Queries (generated Dtos)

Commands DomainLogic write

read

Validation

Page 16: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

CQRS & Event Sourcing

Page 17: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Account & Transactions

ID ACCOUNT_ID TIMESTAMP OP BALANCE

1 1001 1234567890 C 1000

2 1002 1234567891 C 200

3 1001 1234567900 D 300

ID CUSTOMER_ID BALANCE

1001 990 1000

1002 991 0

1003 991 -500

Read ModelAccount

Write ModelTransaction

Page 18: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Queries (generated Dtos)

Commands DomainLogic

write

read

Validation

listen

Event Bus

Page 19: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Why CQRS?

Page 20: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Performances

Page 21: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

DistributionAvailabilityIntegrationAnalytics

Page 22: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Canonical SourceOf Information

(Write Data Store)

Read Data Store

Read Data Store

Events

Page 23: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Choosing the right technology

Latency

Size

Staleness

Ownership

Security

Type?

Page 24: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Reactive Event Sourcing

Page 25: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Canonical Sourceof Information

Write Data Store

Read Data Store

Read Data Store

Propagation of changes

Page 26: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Sequence of events form a data stream

Page 27: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Data Stream is the realm of Reactive

Reactive programming - compose async and event-driven applications using observable streams

Reactive Streams - async and non-blocking back-pressure protocol

Page 28: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Consuming data streams

stream .map(Message::body) .map(json -> "Patient: " +

json.getString("patient") + "\n" + json.getString("alert")

) .flatMapCompletable(this::sendTextMessage) .subscribe();

Page 29: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

Canonical Sourceof Information

Write Data Store

Read Data Store

Read Data Store

Propagation of changes

Page 30: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

https://github.com/cescoffier/reactive-event-sourcing-demo

Page 31: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

THANK YOUplus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHat

Page 32: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DIVIDER COPY

Page 33: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DIVIDER COPY

Page 34: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

CLICK TO ADD TITLEClick to add subtitle

Insert paragraph of copy here. Do not exceed 40 words.

● Bullet● Bullet● Bullet

Page 35: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

THANK YOUplus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHat

Page 36: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED36

When creating charts, graphs, and tables use the corporate and secondary color palettes with no more than one accent color.

CORPORATE

SECONDARY

ACCENT (Use these colors sparingly.)

BRAND COLORSUse ONLY the colors outlined below in your presentation.

PMS 17972 98 85 2204 0 0#CC0000

PMS 18052 98 85 22163 0 0#A30000

PMS 18152 98 85 42130 0 0#820000

RICH BLACK60 40 40 1000 0 0#000000

WHITE0 0 0 0255 255 255#FFFFFF

PMS 3035100 25 18 720 65 83#004153

PMS 297535 0 6 0163 219 232#A3DBE8

DARK GRAY0 0 0 8576 76 76#4C4C4C

LIGHT GRAY0 0 0 15220 220 220#DCDCDC

PMS 268592 100 0 1059 0 131#3B0083

PMS 1300 30 100 0240 171 0#F0AB00

PMS 747498 7 30 300 122 135#007A87

PMS 30679 0 6 50 185 228#00B9E4

PMS 37547 0 94 0146 212 0#92D400

Page 37: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED37

To download, visit: http://brand.redhat.com/elements/icons.

ICONSRed Hat icons use simplicity to explain complex ideas and key concepts. Icons can be used alone, with a polished fill, or on a round button.

Page 38: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED38

Insert text

‘00Insert text

‘00

TIMELINEUse these elements when creating a timeline. Copy and paste these graphics to your slide before changing the size and content of the elements.

Page 39: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED39

Insert text

Insert text

Insert text

Insert text

Primary box, resize as needed

Secondary box, resize as needed

Secondary box, resize as needed

Secondary box, resize as needed

Dotted line

Solid line

Large arrow, resize as needed Plus sign, resize as needed

CHART ELEMENTSUse these elements when creating charts. Copy and paste these graphics to your slide before changing the size and content of the elements.

Arrow line

Page 40: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED

Sample chart template

Sample chart template

VALUE VALUE VALUE VALUE

value value value value

value value value value

value value value value

40

TABLES

VALUE VALUE VALUE VALUE

value value value value

value value value value

value value value value

Using the table tool in Google Slides, you can create basic tables for your presentation. Make sure to use only corporate and secondary colors.

Page 41: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED

Type code snippet here

41

CODE SNIPPETWhen referencing code snippets, use the template below. Resize the snippet box to the appropriate size for your text.

Page 42: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

PRESENTATION TITLE SHOULD NOT EXCEED TWO LINES

Subheading goes here

PresenterPresenter’s titleDate

Page 43: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

PRESENTATION TITLE SHOULD NOT EXCEED TWO LINES

Subheading goes here

PresenterPresenter’s titleDate

Page 44: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

PRESENTATION TITLE SHOULD NOT EXCEED TWO LINES

Subheading goes here

PresenterPresenter’s titleDate

Page 45: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DIVIDER COPY

Page 46: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DIVIDER COPY

Page 47: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED47

8:00AM—9:00AMNAME OF TOPIC

8:00AM—9:00AMNAME OF TOPIC

8:00AM—9:00AMNAME OF TOPIC

8:00AM—9:00AMNAME OF TOPIC

8:00AM—9:00AMNAME OF TOPIC

8:00AM—9:00AMNAME OF TOPIC

8:00AM—9:00AMNAME OF TOPIC

8:00AM—9:00AMNAME OF TOPIC

AGENDADate and/or title of event

Page 48: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED48

CLICK TO ADD TITLE

Page 49: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED49

CLICK TO ADD TITLEClick to add subtitle

Insert paragraph of copy here. Do not exceed 40 words.

● Bullet● Bullet● Bullet

Page 50: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED50

Insert paragraph of copy here. Do not exceed 40 words.

● Bullet● Bullet● Bullet

CLICK TO ADD TITLEClick to add subtitle

Page 51: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED51

Insert paragraph of copy here. Do not exceed 40 words.

● Bullet● Bullet● Bullet

CLICK TO ADD TITLEClick to add subtitle

Page 52: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED52

COLUMN HEADINGALL CAPS, TWO LINES AT MOST

Click to insert text

COLUMN HEADINGALL CAPS, TWO LINES AT MOST

Click to insert text

CLICK TO ADD TITLEClick to add subtitle

Page 53: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED

CLICK TO ADD TITLE

53

Click to add subtitle

COLUMN HEADINGALL CAPS, TWO LINES AT MOST

Click to insert text

COLUMN HEADINGALL CAPS, TWO LINES AT MOST

Click to insert text

Page 54: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED54

COLUMN HEADING,ALL CAPS

Click to add text

COLUMN HEADING,ALL CAPS

Click to add text

COLUMN HEADING,ALL CAPS

Click to add text

CLICK TO ADD TITLEClick to add subtitle

Page 55: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED55

COLUMN HEADING, ALL CAPS

Click to insert copy

COLUMN HEADING, ALL CAPS

Click to insert copy

COLUMN HEADING, ALL CAPS

Click to insert copy

CLICK TO ADD TITLEClick to add subtitle

Page 56: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED

Click to add text

56

CLICK TO ADD TITLEClick to add subtitle

Page 57: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED57

Click to add text

CLICK TO ADD TITLEClick to add subtitle

Page 58: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED

Click to add text

58

CLICK TO ADD TITLEClick to add subtitle

Page 59: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED59

Click to add text

CLICK TO ADD TITLEClick to add subtitle

Page 60: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED60

Insert paragraph of copy here and logos in box to the right.

● Bullet● Bullet● Bullet

CLICK TO ADD TITLEClick to add subtitle

Page 61: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED61

Insert paragraph of copy here and logos in box to the right.

● Bullet● Bullet● Bullet

CLICK TO ADD TITLEClick to add subtitle

Page 62: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED62

Insert customer summary. Include product software. Do not exceed 40 words.

OPTIONAL HEADLINE

“Insert customer quote”

CLICK TO ADD TITLEClick to add subtitle

Page 63: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED63

“Click to add quote” “Click to add quote”

ATTRIBUTIONTitleCompany

ATTRIBUTIONTitleCompany

Page 64: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED64

“Click to add quote”

ATTRIBUTIONTitleCompany

“Click to add quote”

ATTRIBUTIONTitleCompany

“Click to add quote”

ATTRIBUTIONTitleCompany

CLICK TO ADD TITLEClick to add subtitle

Page 65: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED65

“Click to add quote” “Click to add quote”

ATTRIBUTIONTitleCompany

“Click to add quote”

ATTRIBUTIONTitleCompany

ATTRIBUTIONTitleCompany

Page 66: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED66

Click to add text Click to add text Click to add text

CLICK TO ADD TITLEClick to add subtitle

Page 67: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED67

Click to add text Click to add text

Click to add textClick to add text

CLICK TO ADD TITLEClick to add subtitle

Page 68: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED68

SUBHEADINGMAX OF TWO LINES

Click to add text Click to add text

SUBHEADINGMAX OF TWO LINES

Click to add text

SUBHEADINGMAX OF TWO LINES

CLICK TO ADD TITLEClick to add subtitle

Page 69: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED69

SUBHEADING, MAX OF ONE LINEClick to add text

SUBHEADING, MAX OF ONE LINEClick to add text

SUBHEADING, MAX OF ONE LINEClick to add text

CLICK TO ADD TITLEClick to add subtitle

Page 70: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED70

Click to add text (optional)

Click to add text Click to add text

CLICK TO ADD TITLEClick to add subtitle

Page 71: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

INSERT DESIGNATOR, IF NEEDED71

Click to add text (optional)

CLICK TO ADD TITLEClick to add subtitle

Click to add text Click to add text Click to add text

Page 72: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

THANK YOUplus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHat

Page 73: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

THANK YOUplus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHat

Page 74: CQRS AND EVENT SOURCING MICROSERVICES DATA PATTERNS · MICROSERVICES DATA PATTERNS: CQRS AND EVENT SOURCING Edson Yanaga, Director of Developer Experience, Red Hat Clement Escoffier,

THANK YOUplus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHat