Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

! if(this.authProvider.validate(token)) { this.service .send(session.get("user_basket")); }

Slide 6

Slide 6 text

• ⚠ • • ℹ • •

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

• • • • • • • • •

Slide 9

Slide 9 text

!=

Slide 10

Slide 10 text

Actor Behavior Aggregate Event View Command

Slide 11

Slide 11 text

Actor Behavior Aggregate Event Command

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

• • • • • • ⚠

Slide 16

Slide 16 text

CQRS GetBalance Query Deposite Command GetAllOperation Query Withdraw Command … … Dispatcher Read DB Dispatcher QueryHandler CommandHandler Write DB Validation Plugin Monitoring Plugin Cache Plugin … ⚠ Eventual consistency

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

• What is Event Sourcing? • Capture all domain changes as a sequence of events (stream) • Every changes in the domain are represented by events • Events are immutable • Event Store will be the single point of truth • Useful for: • Auditing • Debug • Fix inconsistency • Description of the pattern by Martin Fowler: https://martinfowler.com/eaaDev/EventSourcing.html Event Sourcing

Slide 19

Slide 19 text

• • • • • • • • • • • •

Slide 20

Slide 20 text

CQRS & Event Sourcing GetBalance Query Deposite Command GetAllOperation Query Withdraw Command … … Dispatcher Read DB Dispatcher QueryHandler CommandHandler Event Store Projection Projection Aggregate State Events Behaviors

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

● ● ● ● ● ● ● ● ● ● ● ●

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text