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

2022-09-22.jcon.integration-and-conversation-patterns.foundations.pdf

Dirk Fröhner
September 22, 2022
51

 2022-09-22.jcon.integration-and-conversation-patterns.foundations.pdf

Companies deal with integration problems in many areas and on many layers, and there are dozens of ways how to establish integration between systems, all with their individual trade-offs. However, loosely coupled integration does not only allow for designing independent systems that can be developed and operated individually, but can also increase availability and reliability of the overall systems landscape - particularly by using asynchronous communication between systems. While several text books describe standards for architecting integration and conversation scenarios, it's not always clear for architects which integration approach, technology, or in general which pattern is the best match for their given problem. Join this session to learn about the foundational patterns for integration and conversation scenarios, with an emphasis on the above mentioned principles of loose coupling and asynchronous communication. Based on a fictional company, you will then see how these patterns can be applied to real world use cases, here in a microservices landscape. Finally, receive guidance on integration technology based on these examples, with a focus on cloud-native and serverless services.

Dirk Fröhner

September 22, 2022
Tweet

More Decks by Dirk Fröhner

Transcript

  1. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. Integration and conversation patterns - Foundations Dirk Fröhner (he/him) Principal Solutions Architect Amazon Web Services J C O N O N L I N E , 2 0 2 2 - 0 9 - 2 2
  2. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Motivation Patterns Use cases Resources Agenda
  3. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. Motivation
  4. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. If your application is cloud-native, large-scale, or distributed, and doesn’t include a messaging component, that’s probably a bug. Tim Bray General-purpose internet-software geek
  5. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Potential drawbacks of synchronous systems Synchronous systems are inherently tightly coupled Problems in downstream systems can have immediate impact on upstream callers Retries from upstream callers can easily fan out and amplify problems Photo: Dirk Fröhner
  6. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Potential drawbacks of synchronous systems Synchronous systems are inherently tightly coupled Problems in downstream systems can have immediate impact on upstream callers Retries from upstream callers can easily fan out and amplify problems Photo: Dirk Fröhner . . . and some things simply take too much time to wait, or are asynchronous by nature
  7. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. Patterns
  8. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. Patterns Gregor Hohpe and Bobby Woolf: Enterprise Integration Patterns Designing, Building, and Deploying Messaging Solutions
  9. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message exchange One-way
  10. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message exchange One-way Sender Message channel Receiver A A No response expected Command-, document-, event-message Message intent
  11. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message exchange One-way Asynchronous request-response Sender Message channel Receiver A A No response expected Command-, document-, event-message Message intent
  12. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message exchange One-way Asynchronous request-response Message channel Requester Message channel Responder Sender Message channel Receiver A A A A B B Response expected Return address Correlation ID No response expected Command-, document-, event-message Message intent
  13. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message exchange One-way Asynchronous request-response Message channel Requester Message channel Responder Sender Message channel Receiver Integration pattern A A A A B B No response expected Command-, document-, event-message Message intent Response expected Return address Correlation ID
  14. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message exchange One-way Asynchronous request-response Message channel Requester Message channel Responder Sender Message channel Receiver Conversation pattern A A A A B B Integration pattern No response expected Command-, document-, event-message Message intent Response expected Return address Correlation ID
  15. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Point-to-point (queue)
  16. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Point-to-point (queue) Sender(s) Queue Receivers B A C B A C Each message consumed by one receiver Competing consumers Buffering load balancer
  17. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Point-to-point (queue) Publish-subscribe / fan-out (topic) Sender(s) Queue Receivers B A C B A C Each message consumed by one receiver Competing consumers Buffering load balancer
  18. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Point-to-point (queue) Publish-subscribe / fan-out (topic) Publisher(s) Topic Subscribers Sender(s) Queue Receivers B A C B A C B A C B A C B A C B A C Each message consumed by one receiver Competing consumers Each message consumed by each subscriber How to scale consumers? Conceptually no buffering Buffering load balancer
  19. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Publish-subscribe / fan-out (message bus) Prosumer Prosumer Message bus Scope: components & applications Prosumers over producers vs consumers Additional functionality, but also constraints, e.g.: content-based router, schema validation, payload format constraint, adapters for 3P software Prosumer Prosumer Prosumer
  20. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Point-to-point (queue) Publish-subscribe / fan-out (topic) Publisher(s) Subscribers Sender(s) Receivers B A C B A C B A C B A C B A C B A C Amazon Simple Queue Service (Amazon SQS) Cloud-native & serverless Amazon Simple Notification Service (Amazon SNS) Cloud-native & serverless AWS services implementing various message channel patterns
  21. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Point-to-point (queue) Publish-subscribe / fan-out (topic) Publisher(s) Subscribers Sender(s) Receivers B A C B A C B A C B A C B A C B A C Amazon MQ – managed RabbitMQ or Apache ActiveMQ For applications constrained to industry- standard protocols like JMS or AMQP Amazon MQ – managed RabbitMQ or Apache ActiveMQ For applications constrained to industry- standard protocols like JMS or AMQP AWS services implementing various message channel patterns
  22. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Publish-subscribe / fan-out (topic) Publisher(s) Subscribers B A C B A C B A C B A C AWS IoT Core – Message Broker MQTT, MQTT over WebSocket, and HTTPS (publish only) for apps in the IoT context AWS services implementing various message channel patterns
  23. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Publish-subscribe / fan-out (message bus) Prosumer Prosumer Message bus Amazon EventBridge Cloud-native & serverless For building event-driven applications at scale across AWS, existing systems, or SaaS apps Prosumer Prosumer Prosumer AWS services implementing various message channel patterns Amazon EventBridge
  24. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels What about . . .
  25. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels What about . . . Streams?
  26. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Excursus: Message vs. stream processing Message processing Stream processing A stream is yet another fan-out pattern, but:
  27. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Excursus: Message vs. stream processing Message processing Stream processing Each individual message is a unit of work Messages deleted after consumption Photo: Christian Müller A stream is yet another fan-out pattern, but:
  28. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Excursus: Message vs. stream processing Message processing Stream processing Each individual message is a unit of work Messages deleted after consumption Batches of messages are units of work Messages retained after consumption (until expiration) Photo: Christian Müller Photo: Christian Müller A stream is yet another fan-out pattern, but:
  29. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Excursus: Message vs. stream processing Message processing Stream processing Each individual message is a unit of work Messages deleted after consumption Batches of messages are units of work Messages retained after consumption (until expiration) Photo: Christian Müller Photo: Christian Müller A stream is yet another fan-out pattern, but: Operational overhead
  30. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Excursus: Message vs. stream processing AWS services implementing the stream pattern
  31. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Excursus: Message vs. stream processing AWS services implementing the stream pattern Amazon Kinesis Data Streams Amazon Kinesis Data Firehose Amazon Kinesis Data Analytics Amazon Kinesis
  32. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Excursus: Message vs. stream processing AWS services implementing the stream pattern Amazon Kinesis Data Streams Amazon Kinesis Data Firehose Amazon Kinesis Data Analytics Amazon Kinesis Amazon Managed Streaming for Apache Kafka
  33. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Composite pattern: Topic-queue-chaining
  34. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Durable subscriber pattern: How to avoid missing messages while not listening? Composite pattern: Topic-queue-chaining
  35. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Producer Topic B A C Durable subscriber pattern: How to avoid missing messages while not listening? Composite pattern: Topic-queue-chaining
  36. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Producer Topic B A C Queue Queue A C B A C B Consumers B A C B A C Durable subscriber pattern: How to avoid missing messages while not listening? Composite pattern: Topic-queue-chaining
  37. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Consumers B A C Producer Topic B A C Queue Queue Queue A C B A C B A C B Consumers B A C B A C Durable subscriber pattern: How to avoid missing messages while not listening? Concurrent consumer pattern: How to scale consumers of publish-subscribe channels? Composite pattern: Topic-queue-chaining
  38. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Consumers B A C Producer Topic B A C Queue Queue Queue A C B A C B A C B Consumers B A C B A C Durable subscriber pattern: How to avoid missing messages while not listening? Concurrent consumer pattern: How to scale consumers of publish-subscribe channels? Best of both worlds: fan-out & consumer scale-out & buffering load balancing all at the same time Composite pattern: Topic-queue-chaining
  39. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Dead-letter queue (DLQ)
  40. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Dead-letter queue (DLQ) Producer Queue A C B
  41. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Dead-letter queue (DLQ) Producer Queue A C B Consumers B A C
  42. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Dead-letter queue (DLQ) Producer Queue A C B Consumers B A C Processing message C : Exception! C
  43. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Dead-letter queue (DLQ) Producer Queue A C B Consumers B A C Processing message C : Exception! Repeatedly! C
  44. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Dead-letter queue (DLQ) Producer Queue A C B Consumers B A C Processing message C : Exception! Repeatedly! C Transient failure mitigation Poison pill handling
  45. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Dead-letter queue (DLQ) DLQ Producer Queue A C B Consumers B A C C Transient failure mitigation Poison pill handling
  46. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Dead-letter queue (DLQ) Application ops DLQ C Producer Queue A C B Consumers B A C C Transient failure mitigation Poison pill handling No need for open-heart surgery – investigate without the hassle of production
  47. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement Case 1: Fast enough consumer
  48. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement Time
  49. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement A Time snd_msg P1 A
  50. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement A Time snd_msg P1 A Message status: Stored
  51. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement A rcv_msg A A Time snd_msg P1 A C1 Message status: Stored
  52. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement A A rcv_msg A A Time snd_msg P1 A C1 Visibility timeout Message status: Stored Message status: In flight
  53. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement A A A rcv_msg A rcv_msg A Time snd_msg P1 C2 A C1 Visibility timeout Message status: Stored Message status: In flight
  54. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement A A A rcv_msg A rcv_msg A Time snd_msg P1 C1 C2 A A A C1 ack_msg Visibility timeout Message status: Stored Message status: In flight
  55. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement A A A rcv_msg A rcv_msg A Time snd_msg P1 C1 C2 A A A C1 ack_msg Visibility timeout Message status: Stored Message status: In flight Message status: Deleted
  56. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement Case 2: Not fast enough consumer
  57. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement Time
  58. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement A Time snd_msg P1 A
  59. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement A Time snd_msg P1 A Message status: Stored
  60. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement A rcv_msg A A Time snd_msg P1 A C1 Message status: Stored
  61. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement A A rcv_msg A A Time snd_msg P1 A C1 Visibility timeout Message status: Stored Message status: In flight
  62. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement A A A rcv_msg A rcv_msg A Time snd_msg P1 C2 A C1 Visibility timeout Message status: Stored Message status: In flight
  63. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement A A A rcv_msg A rcv_msg A A snd_msg P1 C1 C2 A Visibility timeout Message status: Stored Message status: In flight Time
  64. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement A A A rcv_msg A rcv_msg A A snd_msg P1 C1 C2 A A Visibility timeout Message status: Stored Message status: In flight Message status: Stored Time
  65. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement A A A A rcv_msg A rcv_msg rcv_msg A A A snd_msg P1 C1 C2 C2 A A Visibility timeout Message status: Stored Message status: In flight Message status: Stored Time
  66. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Visibility timeout, inflight messages, and message acknowledgement A A A A rcv_msg A rcv_msg rcv_msg A A A A Time snd_msg P1 C1 C2 C2 A Message status: Stored Message status: In flight Message status: Stored A Message status: In flight Visibility Visibility timeout
  67. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels FIFO queues
  68. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels FIFO queues Strict order for message delivery
  69. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels FIFO queues Producer FIFO queue C B D Consumer Strict order for message delivery A C B D A Order!
  70. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels FIFO queues Producer FIFO queue C B D Consumer Strict order for message delivery All magic comes with a price, deary A C B D A Order!
  71. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels FIFO queues What happens with multiple consumers?
  72. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels FIFO queues What happens with multiple consumers? Concurrent message consumption!
  73. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m Message channels FIFO queues Producer FIFO queue C B D Consumers What happens with multiple consumers? Concurrent message consumption! A Protocol
  74. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m Message channels FIFO queues Producer FIFO queue C B D Consumers What happens with multiple consumers? Concurrent message consumption! A Protocol A
  75. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m Message channels FIFO queues Producer FIFO queue C B D Consumers What happens with multiple consumers? Concurrent message consumption! A Protocol A B A
  76. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m Message channels FIFO queues Producer FIFO queue C B D Consumers What happens with multiple consumers? Concurrent message consumption! A Protocol A B C B A
  77. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m Message channels FIFO queues Producer FIFO queue C B D Consumers What happens with multiple consumers? Concurrent message consumption! A Protocol A B C B A C
  78. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m Message channels FIFO queues Producer FIFO queue C B D Consumers What happens with multiple consumers? Concurrent message consumption! A Protocol A B C B A C
  79. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B Message channels FIFO queues Producer FIFO queue C B D Consumers What happens with multiple consumers? Concurrent message consumption! A Protocol A B C B A C
  80. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B Message channels FIFO queues Producer FIFO queue C B D Consumers What happens with multiple consumers? Concurrent message consumption! A Protocol A B C B D A C
  81. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B Message channels FIFO queues Producer FIFO queue C B D Consumers What happens with multiple consumers? Concurrent message consumption! A Protocol A B C B D A D C
  82. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B Message channels FIFO queues Producer FIFO queue C B D Consumers What happens with multiple consumers? Concurrent message consumption! A Protocol A B C B D A D C
  83. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B 1 A Message channels FIFO queues Producer FIFO queue C B D Consumers What happens with multiple consumers? Concurrent message consumption! A Protocol A B C B D A D C
  84. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B 1 A Message channels FIFO queues Producer FIFO queue C B D Consumers What happens with multiple consumers? Concurrent message consumption! A Protocol A B C B D A D C
  85. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B 1 A 2 D Message channels FIFO queues Producer FIFO queue C B D Consumers What happens with multiple consumers? Concurrent message consumption! A Protocol A B C B D A D C
  86. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B 1 A 2 D Message channels FIFO queues Producer FIFO queue C B D Consumers What happens with multiple consumers? Concurrent message consumption! A Protocol A B C B D A D C
  87. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B 1 A 2 D 3 C Message channels FIFO queues Producer FIFO queue C B D Consumers What happens with multiple consumers? Concurrent message consumption! A Protocol A B C B D A D C
  88. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B 1 A 2 D 3 C Message channels FIFO queues Producer FIFO queue C B D Consumers What happens with multiple consumers? Concurrent message consumption! Message processing time can vary and lead to order violation in consumer processes A Protocol A B C B D A D C
  89. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Message groups
  90. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Message groups Messages grouped by discriminator attribute
  91. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels Message groups Messages grouped by discriminator attribute Example: Amazon SQS message group IDs
  92. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m Message channels Message groups Producer FIFO queue C B D Consumers A Protocol Messages grouped by discriminator attribute Example: Amazon SQS message group IDs
  93. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A Messages grouped by discriminator attribute Example: Amazon SQS message group IDs
  94. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A A Messages grouped by discriminator attribute Example: Amazon SQS message group IDs
  95. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A B A Messages grouped by discriminator attribute Example: Amazon SQS message group IDs
  96. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A B B A Messages grouped by discriminator attribute Example: Amazon SQS message group IDs
  97. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A B B A Messages grouped by discriminator attribute Example: Amazon SQS message group IDs
  98. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A B B A Messages grouped by discriminator attribute Example: Amazon SQS message group IDs
  99. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A B B D A Messages grouped by discriminator attribute Example: Amazon SQS message group IDs Not C!
  100. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A B B D A D Messages grouped by discriminator attribute Example: Amazon SQS message group IDs
  101. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A B B D A D Messages grouped by discriminator attribute Example: Amazon SQS message group IDs
  102. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B 1 A Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A B B D A D Messages grouped by discriminator attribute Example: Amazon SQS message group IDs
  103. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B 1 A Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A B B D A D Messages grouped by discriminator attribute Example: Amazon SQS message group IDs C
  104. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B 1 A Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A B B D A D Messages grouped by discriminator attribute Example: Amazon SQS message group IDs C C
  105. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B 1 A Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A B B A D C Messages grouped by discriminator attribute Example: Amazon SQS message group IDs D C
  106. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B 1 A 2 D Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A B B A D C Messages grouped by discriminator attribute Example: Amazon SQS message group IDs D C
  107. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B 1 A 2 D Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A B B A D C Messages grouped by discriminator attribute Example: Amazon SQS message group IDs D C
  108. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B 1 A 2 D 3 C Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A B B A D C Messages grouped by discriminator attribute Example: Amazon SQS message group IDs D C
  109. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B 1 A 2 D 3 C Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A B B A D C Messages grouped by discriminator attribute Example: Amazon SQS message group IDs Order retained within each message group Consumer scale-out on # of message group IDs D C
  110. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B 1 A 2 D 3 C Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A B B A D C Messages grouped by discriminator attribute Example: Amazon SQS message group IDs Order retained within each message group Consumer scale-out on # of message group IDs D C Local vs. global message order?
  111. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B 1 A 2 D 3 C Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A B B A D C Messages grouped by discriminator attribute Example: Amazon SQS message group IDs Order retained within each message group Consumer scale-out on # of message group IDs D C What if a global order is needed?
  112. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. t m 0 B 1 A 2 D 3 C Message channels Message groups Producer FIFO queue C B D Consumers A Protocol A B B A D C Messages grouped by discriminator attribute Example: Amazon SQS message group IDs Order retained within each message group Consumer scale-out on # of message group IDs D C What if a global order is needed? One message group for all messages, with respective implications
  113. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels FIFO topics
  114. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels FIFO topics Producer FIFO topic C B D Consumers A C B D A Order! C B D A Order! C B D A Order!
  115. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels FIFO topics Producer FIFO topic C B D Consumers No concurrent consumers A C B D A Order! C B D A Order! C B D A Order!
  116. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels FIFO topics Producer FIFO topic C B D Consumers No concurrent consumers What happens for topic-queue-chaining? A C B D A Order! C B D A Order! C B D A Order!
  117. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels FIFO topics Producer FIFO topic Consumers No concurrent consumers What happens for topic-queue-chaining? Order! Order! Order! C B D A C B D A C B D A C B D A SNS FIFO topics also use message groups (MG)
  118. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message channels FIFO topics Producer FIFO topic No concurrent consumers What happens for topic-queue-chaining? Order! Order! Order! C B D A C B D A C B D A C B D A MG IDs to be forwarded into queue messages SNS FIFO topics also use message groups (MG) FIFO Queue FIFO Queue FIFO Queue Order! Order! Order! C B D A C B D A C B D A Consumers
  119. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message routing Message filter
  120. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message routing Message filter Receive only relevant subset of messages
  121. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message routing Message filter Receive only relevant subset of messages Publisher(s) Topic Subscribers C A D B C B D A C B D A
  122. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message routing Message filter Receive only relevant subset of messages Publisher(s) Topic Subscribers C A D B C B D A C B D A color == red color == green
  123. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message routing Message filter Receive only relevant subset of messages Controlled by subscriber Publisher remains completely unaware Publisher(s) Topic Subscribers C A D B C B D A C B D A color == red color == green
  124. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message routing Message filter Recipient list Receive only relevant subset of messages Controlled by subscriber Send only relevant subset of messages to each subscriber Publisher remains completely unaware Publisher(s) Topic Subscribers C A D B C B D A C B D A color == red color == green
  125. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message routing Message filter Recipient list Publisher(s) Subscribers Receive only relevant subset of messages Controlled by subscriber Send only relevant subset of messages to each subscriber Publisher remains completely unaware Publisher(s) Topic Subscribers C A D B C B D A C B D A color == red color == green C B D A C A D B C B D A color == red color == green Recipient list component
  126. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message routing Message filter Recipient list Publisher(s) Subscribers Receive only relevant subset of messages Controlled by subscriber Send only relevant subset of messages to each subscriber Controlled directly by publisher or a separate component Publisher remains completely unaware Publisher(s) Topic Subscribers C A D B C B D A C B D A color == red color == green C B D A C A D B C B D A color == red color == green Recipient list component
  127. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Message routing Scatter-gather
  128. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. How to distribute a request to relevant/interested parties and capture their individual responses? Message routing Scatter-gather
  129. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. How to distribute a request to relevant/interested parties and capture their individual responses? Message routing For election or parallel processing scenarios, i.e., search for best response or accumulate responses Scatter-gather
  130. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. How to distribute a request to relevant/interested parties and capture their individual responses? Message routing Scatter-gather Requester For election or parallel processing scenarios, i.e., search for best response or accumulate responses
  131. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. How to distribute a request to relevant/interested parties and capture their individual responses? Message routing Scatter-gather Requester Topic A For election or parallel processing scenarios, i.e., search for best response or accumulate responses
  132. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. How to distribute a request to relevant/interested parties and capture their individual responses? Message routing Scatter-gather Requester Topic A A A A For election or parallel processing scenarios, i.e., search for best response or accumulate responses Responders
  133. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. How to distribute a request to relevant/interested parties and capture their individual responses? Message routing Scatter-gather Requester Topic A A A A For election or parallel processing scenarios, i.e., search for best response or accumulate responses Responders
  134. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. How to distribute a request to relevant/interested parties and capture their individual responses? Message routing Scatter-gather Requester Topic A A A A B1 For election or parallel processing scenarios, i.e., search for best response or accumulate responses Responders B3 B2
  135. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. How to distribute a request to relevant/interested parties and capture their individual responses? Message routing Scatter-gather Requester Requester Topic A Queue A A A B1 For election or parallel processing scenarios, i.e., search for best response or accumulate responses Responders B2 B3
  136. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. How to distribute a request to relevant/interested parties and capture their individual responses? Message routing Scatter-gather Requester Requester Topic A A A A B1 For election or parallel processing scenarios, i.e., search for best response or accumulate responses Responders B3 B1 B2 B3 B2 Queue
  137. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. How to distribute a request to relevant/interested parties and capture their individual responses? Message routing Scatter-gather Requester Requester Topic A A A A B1 For election or parallel processing scenarios, i.e., search for best response or accumulate responses Responders Processor Aggregator B3 B1 B2 B3 B2 Queue
  138. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. Use cases
  139. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Context: Wild Rydes, Inc.
  140. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. Submit ride completion U S E CAS E
  141. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Wild Rydes unicorn
  142. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Wild Rydes unicorn
  143. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Ride management service POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Wild Rydes unicorn
  144. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Ride management service POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Managed API Gateway Wild Rydes unicorn
  145. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Ride management service POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Managed API Gateway Completed rides processor Wild Rydes unicorn
  146. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Ride management service POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Managed API Gateway Completed rides processor Wild Rydes unicorn
  147. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E 201 Created ... { < new resource representation > } Ride management service POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Managed API Gateway Completed rides processor Wild Rydes unicorn
  148. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E 201 Created ... { < new resource representation > } Ride management service POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Managed API Gateway Completed rides processor Wild Rydes unicorn
  149. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Ride management service Customer notification service 201 Created ... { < new resource representation > } POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Managed API Gateway Completed rides processor Wild Rydes unicorn
  150. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Ride management service Customer notification service Customer accounting service 201 Created ... { < new resource representation > } POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Managed API Gateway Completed rides processor Wild Rydes unicorn
  151. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Ride management service Customer notification service Customer accounting service Customer loyalty service 201 Created ... { < new resource representation > } POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Managed API Gateway Completed rides processor Wild Rydes unicorn
  152. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Ride management service Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service 201 Created ... { < new resource representation > } POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Managed API Gateway Completed rides processor Wild Rydes unicorn
  153. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Ride management service Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service 201 Created ... { < new resource representation > } POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Managed API Gateway Completed rides processor Wild Rydes unicorn
  154. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Ride management service Customer notification service Customer accounting service Customer loyalty service Data lake Ingestion service Extraordinary rides service Interested in rides with: fare >= x distance >= y 201 Created ... { < new resource representation > } POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Managed API Gateway Completed rides processor Wild Rydes unicorn
  155. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Ride management service Customer notification service Managed API Gateway Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service Interested in rides with: fare >= x distance >= y 201 Created ... { < new resource representation > } POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Completed rides processor Integration via database? Wild Rydes unicorn
  156. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Ride management service Customer notification service Managed API Gateway Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service Interested in rides with: fare >= x distance >= y Wild Rydes unicorn app Photo: Dirk Fröhner 201 Created ... { < new resource representation > } POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Completed rides processor Integration via database? Oh my! Photo: Dirk Fröhner
  157. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Ride management service Customer notification service Managed API Gateway Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service Interested in rides with: fare >= x distance >= y 201 Created ... { < new resource representation > } POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Completed rides processor Integration via REST APIs? Wild Rydes unicorn
  158. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Ride management service Customer notification service Managed API Gateway Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service Interested in rides with: fare >= x distance >= y 201 Created ... { < new resource representation > } POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Completed rides processor Integration via REST APIs? Absolutely, but . . . Wild Rydes unicorn
  159. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Recipient-list Ride management service Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service https://... https://... https://... https://... https://... https://... 201 Created ... { < new resource representation > } POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Managed API Gateway Completed rides processor Wild Rydes unicorn
  160. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Recipient-list service Ride management service Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service https://... https://... https://... https://... https://... https://... 201 Created ... { < new resource representation > } POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Request distribution service Managed API Gateway Completed rides processor Wild Rydes unicorn
  161. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Self-managed filtering Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service https://... https://... https://... https://... https://... Interested in rides with: fare >= x distance >= y https://... 201 Created ... { < new resource representation > } POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Request distribution service Managed API Gateway Completed rides processor Wild Rydes unicorn Ride management service
  162. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Self-managed filtering Ride management service Customer notification service Request distribution service Managed API Gateway Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service https://... https://... https://... https://... https://... Interested in rides with: fare >= x distance >= y https://... 201 Created ... { < new resource representation > } POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Completed rides processor Integration via messaging? Absolutely! Wild Rydes unicorn
  163. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Publish-subscribe (topic) Ride management service Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service 201 Created ... { < new resource representation > } POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Ride completion topic Managed API Gateway Completed rides processor Wild Rydes unicorn
  164. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Message filter Ride management service Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service SNS message filter: fare >= x distance >= y 201 Created ... { < new resource representation > } POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Ride completion topic Managed API Gateway Completed rides processor Wild Rydes unicorn
  165. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Submit ride completion U S E C A S E Topic-queue-chaining Ride management service Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service SNS message filter: fare >= x distance >= y 201 Created ... { < new resource representation > } POST /... HTTP/1.1 ... { "customer": ..., "from-to" : ..., "distance": ..., "duration": ..., "fare" : ... } Completed rides store Ride completion topic Managed API Gateway Completed rides processor Wild Rydes unicorn
  166. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. Prebooking campaigns U S E CAS E
  167. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Prebooking campaigns U S E C A S E All at once Massive campaign with CTA: Book this week!
  168. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Prebooking campaigns U S E C A S E All at once Wild Rydes customer
  169. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Prebooking campaigns U S E C A S E All at once POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Wild Rydes customer
  170. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Ride booking service Prebooking campaigns U S E C A S E All at once AWS Cloud POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Wild Rydes customer
  171. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Ride booking service Prebooking campaigns U S E C A S E All at once AWS Cloud POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Managed API Gateway Wild Rydes customer
  172. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Ride booking service Prebooking campaigns U S E C A S E All at once AWS Cloud POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Managed API Gateway Prebooking processing resource Wild Rydes customer
  173. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Ride booking service Prebooking campaigns U S E C A S E All at once AWS Cloud POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Managed API Gateway Prebooking processing resource Prebooking data store Wild Rydes customer
  174. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Ride booking service Prebooking campaigns U S E C A S E All at once AWS Cloud 201 Created ... { < prebooking representation > } POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Managed API Gateway Prebooking processing resource Prebooking data store Wild Rydes customer
  175. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Ride booking service Prebooking campaigns U S E C A S E All at once AWS Cloud 201 Created ... { < prebooking representation > } POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Managed API Gateway Prebooking Processing Resource Massive campaign with CTA: Book today! Prebooking Data Store Wild Rydes customer
  176. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Prebooking campaigns U S E C A S E Internal decoupling Wild Rydes customer
  177. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Prebooking campaigns U S E C A S E Internal decoupling POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Wild Rydes customer
  178. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Ride booking service Prebooking campaigns U S E C A S E Internal decoupling AWS Cloud POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Wild Rydes customer
  179. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Ride booking service Prebooking campaigns U S E C A S E Internal decoupling AWS Cloud POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Managed API Gateway Wild Rydes customer
  180. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Ride booking service Prebooking campaigns U S E C A S E Internal decoupling AWS Cloud Prebooking preprocessing resource POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Managed API Gateway Wild Rydes customer
  181. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Ride booking service Prebooking campaigns U S E C A S E Internal decoupling AWS Cloud Prebooking forwarding topic Prebooking preprocessing resource POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Managed API Gateway Wild Rydes customer
  182. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Ride booking service Prebooking campaigns U S E C A S E Internal decoupling AWS Cloud Prebooking forwarding topic Prebooking preprocessing resource POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Managed API Gateway 202 Accepted ... { < task & status representation > } Wild Rydes customer
  183. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Ride booking service Prebooking campaigns U S E C A S E Internal decoupling AWS Cloud 202 Accepted ... { < task & status representation > } Prebooking processing queue Prebooking processing resource Prebooking forwarding topic Prebooking preprocessing resource POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Managed API Gateway Ride booking service Wild Rydes customer
  184. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Ride booking service Prebooking campaigns U S E C A S E Internal decoupling AWS Cloud 202 Accepted ... { < task & status representation > } Data lake ingestion service Data lake ingestion processing Data lake ingestion queue Prebooking processing queue Prebooking processing resource Prebooking forwarding topic Prebooking preprocessing resource POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Managed API Gateway Ride booking service Wild Rydes customer
  185. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Ride booking service Prebooking campaigns U S E C A S E Internal decoupling AWS Cloud 202 Accepted ... { < task & status representation > } Data lake ingestion service Data lake ingestion processing Data lake ingestion queue Prebooking processing queue Prebooking processing resource Prebooking forwarding topic Prebooking preprocessing resource POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Managed API Gateway Ride booking service Wild Rydes customer No space left for the database icon
  186. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Ride booking service Prebooking campaigns U S E C A S E Internal decoupling AWS Cloud 202 Accepted ... { < task & status representation > } Data lake ingestion service Data lake ingestion processing Data lake ingestion queue Prebooking processing queue Prebooking processing resource Prebooking forwarding topic Prebooking preprocessing resource POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Managed API Gateway Ride booking service Wild Rydes customer
  187. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Ride booking service Prebooking campaigns U S E C A S E Internal decoupling AWS Cloud 202 Accepted ... { < task & status representation > } Data lake ingestion service Data lake ingestion processing Data lake ingestion queue Prebooking processing queue Prebooking processing resource Prebooking forwarding topic Prebooking preprocessing resource POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Managed API Gateway Ride booking service Wild Rydes customer Massive campaign with CTA: Book now!
  188. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Ride booking service Prebooking campaigns U S E C A S E Even more internal decoupling AWS Cloud 200 OK ... <SendMessageResponse> ... </SendMessageResponse> POST /... HTTP/1.1 ... Action=SendMessage &MessageBody=... Prebooking forwarding topic Prebooking preprocessing resource Prebooking submission queue Data lake ingestion service Ride booking service Data lake ingestion processing Data lake ingestion queue Prebooking processing queue Prebooking processing resource Wild Rydes customer
  189. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Ride booking service Prebooking campaigns U S E C A S E Even more internal decoupling AWS Cloud 202 Accepted ... { < task & status representation > } Prebooking forwarding topic Prebooking preprocessing resource Prebooking submission queue Managed API Gateway Data lake ingestion service Ride booking service Data lake ingestion processing Data lake ingestion queue Prebooking processing queue Prebooking processing resource POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Wild Rydes customer
  190. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Ride booking service Prebooking campaigns U S E C A S E Even more internal decoupling AWS Cloud 202 Accepted ... { < task & status representation > } Prebooking forwarding topic Prebooking preprocessing resource Prebooking submission queue Managed API Gateway Ride booking service Prebooking processing queue Prebooking processing resource POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Data lake ingestion service Data lake ingestion processing Data lake ingestion queue Wild Rydes customer
  191. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Prebooking campaigns U S E C A S E Stream for datalake ingestion AWS Cloud 202 Accepted ... { < task & status representation > } Modern data platform Data lake raw data tier Data lake ingestion stream Prebooking forwarding topic Prebooking preprocessing resource Prebooking submission queue Managed API Gateway Ride booking service Ride booking service Prebooking processing queue Prebooking processing resource POST /... HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ..., "when" : ... } Wild Rydes customer
  192. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. Instant ride RFQ U S E CAS E
  193. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. How to distribute a request to relevant/interested parties and capture their individual responses? Message routing Scatter-gather Requester Requester Topic A A A A B1 For election or parallel processing scenarios, i.e., search for best response or accumulate responses Responders Processor Aggregator B3 B1 B2 B3 B2 Queue Remember the scatter-gather pattern?
  194. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. How to distribute a request to relevant/interested parties and capture their individual responses? Message routing Scatter-gather Requester Requester Topic A A A A B1 For election or parallel processing scenarios, i.e., search for best response or accumulate responses Responders Processor Aggregator B3 B1 B2 B3 B2 Queue
  195. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Wild Rydes customer Scatter-gather
  196. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Scatter-gather POST /<submit> HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ... } Wild Rydes customer
  197. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service Scatter-gather POST /<submit> HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ... } Wild Rydes customer
  198. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service API Gateway Scatter-gather POST /<submit> HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ... } Wild Rydes customer
  199. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ intake processor Scatter-gather POST /<submit> HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ... } Wild Rydes customer API Gateway
  200. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ intake processor RFQ store Scatter-gather POST /<submit> HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ... } Wild Rydes customer API Gateway
  201. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor RFQ store Scatter-gather POST /<submit> HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ... } Wild Rydes customer API Gateway
  202. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor RFQ store Scatter-gather POST /<submit> HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ... } HTTP/1.1 202 Accepted ... { "links": { <link-to-refresh> }, "status": "running", "eta" : ... } Wild Rydes customer API Gateway
  203. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor RFQ store Scatter-gather POST /<submit> HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ... } HTTP/1.1 202 Accepted ... { "links": { <link-to-refresh> }, "status": "running", "eta" : ... } Wild Rydes customer API Gateway
  204. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store Scatter-gather POST /<submit> HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ... } HTTP/1.1 202 Accepted ... { "links": { <link-to-refresh> }, "status": "running", "eta" : ... } Wild Rydes customer API Gateway
  205. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ Intake Processor Unicorn management service RFQ store . . . Scatter-gather POST /<submit> HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ... } HTTP/1.1 202 Accepted ... { "links": { <link-to-refresh> }, "status": "running", "eta" : ... } UMR UMR UMR UMR: Unicorn management resource Wild Rydes customer API Gateway
  206. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store . . . Scatter-gather POST /<submit> HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ... } HTTP/1.1 202 Accepted ... { "links": { <link-to-refresh> }, "status": "running", "eta" : ... } UMR UMR UMR UMR: Unicorn management resource Wild Rydes customer API Gateway
  207. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather POST /<submit> HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ... } HTTP/1.1 202 Accepted ... { "links": { <link-to-refresh> }, "status": "running", "eta" : ... } UMR UMR UMR UMR: Unicorn management resource Wild Rydes customer API Gateway
  208. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ response queue Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather POST /<submit> HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ... } HTTP/1.1 202 Accepted ... { "links": { <link-to-refresh> }, "status": "running", "eta" : ... } UMR UMR UMR UMR: Unicorn management resource Wild Rydes customer API Gateway
  209. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather POST /<submit> HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ... } HTTP/1.1 202 Accepted ... { "links": { <link-to-refresh> }, "status": "running", "eta" : ... } UMR UMR UMR UMR: Unicorn management resource Wild Rydes customer API Gateway
  210. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather POST /<submit> HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ... } HTTP/1.1 202 Accepted ... { "links": { <link-to-refresh> }, "status": "running", "eta" : ... } UMR UMR UMR Wild Rydes customer API Gateway What can the client do?
  211. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather POST /<submit> HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ... } HTTP/1.1 202 Accepted ... { "links": { <link-to-refresh> }, "status": "running", "eta" : ... } UMR UMR UMR Wild Rydes customer API Gateway What can the client do? Retrieve a status update
  212. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather POST /<submit> HTTP/1.1 ... { "customer": ..., "from" : ..., "to" : ... } HTTP/1.1 202 Accepted ... { "links": { <link-to-refresh> }, "status": "running", "eta" : ... } UMR UMR UMR Wild Rydes customer API Gateway
  213. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ Intake processor Unicorn management service RFQ store RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather GET /<refresh> HTTP/1.1 ... UMR UMR UMR Wild Rydes customer API Gateway
  214. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather GET /<refresh> HTTP/1.1 ... UMR UMR UMR Wild Rydes customer API Gateway
  215. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ result processor RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather GET /<refresh> HTTP/1.1 ... UMR UMR UMR Wild Rydes customer API Gateway
  216. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ result processor RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather GET /<refresh> HTTP/1.1 ... UMR UMR UMR Wild Rydes customer API Gateway
  217. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ result processor RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather GET /<refresh> HTTP/1.1 ... HTTP/1.1 200 OK ... { "links": { <link-to-refresh> }, "status": "running", "eta" : ... } UMR UMR UMR Wild Rydes customer API Gateway
  218. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ result processor RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather GET /<refresh> HTTP/1.1 ... HTTP/1.1 200 OK ... { "links": { <link-to-refresh> }, "status": "running", "eta" : ... } UMR UMR UMR Wild Rydes customer API Gateway What can the client do? Retrieve another status update
  219. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather GET /<refresh> HTTP/1.1 ... RFQ result processor UMR UMR UMR Wild Rydes customer API Gateway
  220. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather GET /<refresh> HTTP/1.1 ... RFQ result processor UMR UMR UMR Wild Rydes customer API Gateway
  221. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ result processor RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather GET /<refresh> HTTP/1.1 ... UMR UMR UMR Wild Rydes customer API Gateway
  222. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ result processor RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather GET /<refresh> HTTP/1.1 ... UMR UMR UMR Wild Rydes customer API Gateway
  223. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ result processor RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather GET /<refresh> HTTP/1.1 ... HTTP/1.1 200 OK ... { "links": { <link-to-result> }, "status": "done" } UMR UMR UMR Wild Rydes customer API Gateway
  224. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ result processor RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather GET /<refresh> HTTP/1.1 ... HTTP/1.1 200 OK ... { "links": { <link-to-result> }, "status": "done" } UMR UMR UMR Wild Rydes customer API Gateway What can the client do? Retrieve RFQ result
  225. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather GET /<result> HTTP/1.1 ... RFQ result processor UMR UMR UMR Wild Rydes customer API Gateway
  226. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather GET /<result> HTTP/1.1 ... RFQ result processor UMR UMR UMR Wild Rydes customer API Gateway
  227. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ result processor RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather GET /<result> HTTP/1.1 ... UMR UMR UMR Wild Rydes customer API Gateway
  228. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ result processor RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather GET /<result> HTTP/1.1 ... UMR UMR UMR Wild Rydes customer API Gateway
  229. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Instant ride RFQ U S E C A S E Ride booking service RFQ share topic RFQ intake processor Unicorn management service RFQ store RFQ result processor RFQ response queue Response aggregator Unicorn n Unicorn 2 Unicorn 1 . . . Scatter-gather GET /<result> HTTP/1.1 ... HTTP/1.1 200 OK ... { "links": { <links> }, "ride-data": ..., "quotes" : ... } UMR UMR UMR Wild Rydes customer API Gateway
  230. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. Resources and call to action
  231. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Resources and call to action AWS blog series Read again about the use cases and patterns from this talk (and more)
  232. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Resources and call to action AWS blog series Read again about the use cases and patterns from this talk (and more) AWS hands-on workshop Gain hands-on experience with building the use cases from this talk (and more)
  233. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Resources and call to action AWS blog series Read again about the use cases and patterns from this talk (and more) AWS hands-on workshop Gain hands-on experience with building the use cases from this talk (and more) Reach out to your friendly AWS solutions architect
  234. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Resources and call to action AWS blog series Read again about the use cases and patterns from this talk (and more) AWS hands-on workshop Gain hands-on experience with building the use cases from this talk (and more) Reach out to your friendly AWS solutions architect and keep in mind
  235. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Resources and call to action AWS blog series Read again about the use cases and patterns from this talk (and more) AWS hands-on workshop Gain hands-on experience with building the use cases from this talk (and more) Reach out to your friendly AWS solutions architect and keep in mind Loose coupling is always better than lousy coupling
  236. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Thank you! © 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. Dirk Fröhner Twitter: LinkedIn: @dirk_f5r