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

Distribute Your Microservices Data With Events,...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

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.

Avatar for Edson Yanaga

Edson Yanaga

January 16, 2020

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