Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Distribute Your Microservices Data With Events, CQRS, and Event Sourcing

Distribute Your Microservices Data With Events, CQRS, and Event Sourcing

You split up your monolithic codebase into smaller artifacts and thought you were done! Now you’ve reached the hardest part: how do you split your data, and how do you keep your system working with it?

If this rings a bell, then you need to register for this session. We’ll explore how events with an event-driven architecture can help you succeed in this distributed data world. Learn concepts like CQRS, event sourcing, and how you can use them in a distributed architecture with REST, message brokers, and Apache Kafka.

Edson Yanaga

January 16, 2020
Tweet

More Decks by Edson Yanaga

Other Decks in Technology

Transcript

  1. @yanaga 5 HTTP + REST/gRPC/RMI/IIOP Synchronous Data Retrieval on a

    Remote Endpoint Client Canonical Source of Information
  2. @yanaga 6 HTTP + REST/gRPC/RMI/IIOP Synchronous Data Retrieval on a

    Remote Endpoint Client Canonical Source of Information
  3. @yanaga 18 ID CUSTOMER_ID BALANCE 1001 990 1000 1002 991

    0 1003 991 -500 1004 992 300 Account
  4. @yanaga 19 ID ACCOUNT_ID TIMESTAMP OP AMOUNT 1 1001 1234567890

    C 1000 2 1002 1234567891 C 200 3 1001 1234567900 D 300 4 1001 1234567995 D 150 Transactions
  5. @yanaga 24 ID NAME PHONE ADDRESS BIRTH 1 Burr 222-222-2323

    901 South St 12/12/1968 2 Edson 222-333-3434 112 North Dr 03/03/1978 3 John 111-456-4545 666 Iron St 06/06/1966 4 Doe 333-789-7890 777 Boeing Dr 07/07/1977 INSERT INTO CUSTOMER(ID,NAME,PHONE,ADDRESS,BIRTH); SELECT * FROM CUSTOMER;
  6. @yanaga 27 SELECT ID, NAME, AGE, AVG_BILL FROM CUSTOMER_REPORT_VIEW; SELECT

    ID, PHONE, LAST_PAYMENT_AMOUNT FROM CUSTOMER_BILLING_VIEW;
  7. @yanaga 29 ID CUSTOMER_ID BALANCE 1001 990 1000 1002 991

    0 1003 991 -500 1004 992 300 Account ID ACCOUNT_ID TIMESTAMP OP AMOUNT 1 1001 1234567890 C 1000 2 1002 1234567891 C 200 3 1001 1234567900 D 300 4 1001 1234567995 D 150 Transactions
  8. @yanaga 30 ID CUSTOMER_ID BALANCE 1001 990 1000 1002 991

    0 1003 991 -500 1004 992 300 Account ID ACCOUNT_ID TIMESTAMP OP AMOUNT 1 1001 1234567890 C 1000 2 1002 1234567891 C 200 3 1001 1234567900 D 300 4 1001 1234567995 D 150 Transactions READ MODEL WRITE MODEL
  9. @yanaga 37 Canonical Source of Information (Write Data Store) Read

    Data Store Read Data Store µ µ µ Events Events
  10. @yanaga 45 Create a REST endpoint for your events using

    Quarkus Or Publish the events on ActiveMQ / Kafka