SlideShare a Scribd company logo
1 of 71
Dennis Traub, Developer Advocate, Amazon Web Services
Twitter: @dtraub
Podcast: bit.ly/aws-podcast
Application Integration Patterns
for Microservices
Application Integration Patterns
(not only) for Microservices
Dennis Traub, Developer Advocate, Amazon Web Services
Twitter: @dtraub
Podcast: bit.ly/aws-podcast
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Two Architectural Principles:
- Divide and Conquer
- Loose (not lousy) Coupling
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
“If your application is cloud native, or
large-scale, or distributed, and
doesn’t include a messaging
component, that’s probably a bug.”
Tim Bray
Former Senior Principal Engineer at AWS
Co-Author of the original XML Spec
Potential drawbacks of
synchronous systems
Synchronous systems are tightly
coupled
A problem in a synchronous
downstream dependency has
immediate impact on the upstream
callers
Retries from upstream callers can all
too easily fan out and amplify
problems
Photo: Dirk Fröhner
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Message exchange
One way Request response
Message
channel
Receiver
No response expected
Synchronous vs. fire-and-forget
Response expected
Return address
Correlation ID
Sender
Message
channel
Responder
Requester
Message
channel
Message channels
Point-to-point (queue) Publish-subscribe (topic)
Consumed by one receiver
Easy to scale
Flatten peak loads
Consumed by all subscribers
Durable subscriber
Receivers
Sender
Queue
Subscribers
Publisher
Topic
Message channels
Point-to-point (queue) Publish-subscribe (topic)
AWS service for queue functionality:
Amazon Simple Queue Services (Amazon SQS)
Serverless & cloud-native
AWS service for topic functionality:
Amazon Simple Notification Service (Amazon SNS)
Serverless & cloud-native
Receivers
Sender
Subscribers
Publisher
Amazon SQS Amazon SNS
Message channels
Point-to-point (queue) Publish-subscribe (topic)
AWS service for queue functionality (nonserverless):
Amazon MQ (managed Apache Active MQ)
For applications constrained to protocols like JMS,
AMQP, etc.
AWS service for topic functionality (nonserverless):
Amazon MQ (managed Apache Active MQ)
For applications constrained to protocols like JMS,
AMQP, etc.
Receivers
Sender
Subscribers
Publisher
Amazon MQ Amazon MQ
Message channels
Visibility timeout, inflight messages, message acknowledgement
Time
Receive
message
Receive
message
Delete or acknowledge
message
Visibility timeout
🔥
Time
Visibility timeout
Receive
message
Receive
message
Receive
message
Receive
message
Message channels
Topic-queue-chaining
Allows fan-out and receiver scale-out at the same time
Publisher
Topic
Queue
Queue
Receivers
Application 1
Application 2
Message channels
Dead-letter queue
Transient failure mitigation
Poison-pill handling
Sender
Queue
Receivers
X
Dead-letter
queue
Message channels
FIFO queue Message groups
Guaranteed ordering Messages grouped by discriminator attribute
Example: Amazon SQS with sender provided message
Group IDs: No further consumption as long as messages
with particular message group IDs are invisible
Queue
Receiver
Sender
Receivers
Sender
Queue
Order
Message channels
FIFO queue Message groups
Guaranteed ordering Messages grouped by discriminator attribute
Example: Amazon SQS with sender provided message
Group IDs: No further consumption as long as messages
with particular message group IDs are invisible
Queue
Receiver
Sender
Receivers
Sender
Queue
Order
Message channels
FIFO queue Message groups
Guaranteed ordering Messages grouped by discriminator attribute
Example: Amazon SQS with sender provided message
Group IDs: No further consumption as long as messages
with particular message group IDs are invisible
Queue
Receiver
Sender
Receivers
Sender
Queue
Order
Message channels
FIFO queue Message groups
Guaranteed ordering Messages grouped by discriminator attribute
Example: Amazon SQS with sender provided message
Group IDs: No further consumption as long as messages
with particular message group IDs are invisible
Queue
Receiver
Sender
Receivers
Sender
Queue
Order
Message channels
FIFO queue Message groups
Guaranteed ordering Messages grouped by discriminator attribute
Example: Amazon SQS with sender provided message
Group IDs: No further consumption as long as messages
with particular message group IDs are invisible
Queue
Receiver
Sender
Receivers
Sender
Queue
Order
Message channels
FIFO queue Message groups
Guaranteed ordering Messages grouped by discriminator attribute
Example: Amazon SQS with sender provided message
Group IDs: No further consumption as long as messages
with particular message group IDs are invisible
Queue
Receiver
Sender
Receivers
Sender
Queue
Order
Message channels
FIFO queue Message groups
Guaranteed ordering Messages grouped by discriminator attribute
Example: Amazon SQS with sender provided message
Group IDs: No further consumption as long as messages
with particular message group IDs are invisible
Queue
Receiver
Sender
Receivers
Sender
Queue
Order
Message channels
FIFO queue Message groups
Guaranteed ordering Messages grouped by discriminator attribute
Example: Amazon SQS with sender provided message
Group IDs: No further consumption as long as messages
with particular message group IDs are invisible
Queue
Receiver
Sender
Receivers
Sender
Queue
Order
Message channels
FIFO queue Message groups
Guaranteed ordering Messages grouped by discriminator attribute
Example: Amazon SQS with sender provided message
Group IDs: No further consumption as long as messages
with particular message group IDs are invisible
Queue
Receiver
Sender
Receivers
Sender
Queue
Order!
Message channels
Message delivery QoS
At least once
At most once
Exactly once
Queue
Receiver
Sender
Exactly once? Well!
How to deal with a situation where the message was
consumed but never acknowledged?
→ Your systems still have to be able to
handle duplicate messages
→ Messages should be processed in
an idempotent manner
Choose between at least once or at most once
Message routing
Message filter Recipient list
Receive only a relevant subset of messages
Controlled by subscriber
Publisher remains completely unaware
Send only a relevant subset of messages to a subscriber
Controlled by publisher or separate component
Potentially adds coupling
Subscribers
Publisher
Subscribers
Publisher
Topic
color = blue
color = yellow
Recipient
list
Message routing
Scatter-gather
Requester
Topic
Responders
Queue
Aggregator Processor
How to distribute a request across potentially interested or relevant parties and capture their individual responses?
- RFQ scenarios, search for best response, etc.
- Parallel processing scenarios
Message routing
Pipes and filters
Event triggers chain of processing steps (“filters”)
Knowledge of destination for next steps is wired into each filter
Event source Pipe Filter Filter
Pipe Pipe Result target
…
Filter
Step 1 Step 2 Step n
Message routing
Saga orchestration
Event triggers orchestrated workflow
Knowledge of workflow is externalized into orchestrator component, as well as for potential rollback
Workflow participants remain as loosely coupled as possible
Processor
Processor
Processor
Processor
Event source Orchestrator
…
Step 1
Step 2 Step n-1
Step n
Result target
Message routing
Saga orchestration
AWS service for saga orchestration (serverless):
AWS Step Functions
Processor
Processor
Processor
Processor
Event source Orchestrator
…
Step 1
Step 2 Step n-1
Step n
Result target
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Use case: Submit a ride completion
AWS Cloud
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
Unicorn
Wild Rydes
unicorn app
https://...
submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides
store
Unicorn
management
service
Use case: Submit a ride completion
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
Unicorn
Wild Rydes
unicorn app
https://...
submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides
store
Unicorn
management
service
Use case: Submit a ride completion
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
Interested in rides with
fare >= x
distance >= y
Rides
store
Unicorn
Wild Rydes
unicorn app
https://...
submit-ride-completion
Unicorn
management
service
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Use case: Submit a ride completion
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
Unicorn
Wild Rydes
unicorn app
https://...
submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides
store
Unicorn
Management
Service
Interested in rides with
fare >= x
distance >= y
Integration via database?
Use case: Submit a ride completion
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
Unicorn
Wild Rydes
unicorn app
https://...
submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides
store
Unicorn
Management
Service
Integration via database?
Oh my!
Interested in rides with
fare >= x
distance >= y
Use case: Submit a ride completion
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
Unicorn
Wild Rydes
unicorn app
https://...
submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides
store
Unicorn
Management
Service
Integration via REST APIs?
Interested in rides with
fare >= x
distance >= y
Use case: Submit a ride completion
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
Unicorn
Wild Rydes
unicorn app
https://...
submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides
store
Unicorn
Management
Service
Integration via REST APIs?
Absolutely, but …
Interested in rides with
fare >= x
distance >= y
Use case: Submit a ride completion
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
https://...
https://...
https://...
https://...
https://...
Recipient list
Unicorn
Wild Rydes
unicorn app
https://...
submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides
store
Unicorn
management
service
Use case: Submit a ride completion
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
https://...
https://...
https://...
https://...
https://...
Recipient list service
Unicorn
Request
distribution
service
https://...
Wild Rydes
unicorn app
https://...
submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides
store
Unicorn
management
service
Use case: Submit a ride completion
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
https://...
https://...
https://...
https://...
https://...
Self-managed filtering
Unicorn
Request
distribution
service
https://...
Wild Rydes
Unicorn app
https://...
submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides
store
Unicorn
management
service
Interested in rides with
fare >= x
distance >= y
Use case: Submit a ride completion
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
https://...
https://...
https://...
https://...
https://...
Self-managed filtering
Unicorn
Request
Distribution
Service
https://...
Wild Rydes
unicorn app
https://...
submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides
store
Unicorn
Management
Service
Interested in rides with
fare >= x
distance >= y
Integration via messaging?
Absolutely!
Use case: Submit a ride completion
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
Publish-subscribe (topic)
Unicorn
Ride
completion
topic
Wild Rydes
unicorn app
https://...
submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides
store
Unicorn
management
service
Use case: Submit a ride completion
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
SNS message filter:
fare >= x
distance >= y
Message filter
Unicorn
Ride
completion
topic
Wild Rydes
unicorn app
https://...
submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides
store
Unicorn
management
service
Use case: Submit a ride completion
Unicorn
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
Ride
completion
topic
Topic-queue-chaining
Wild Rydes
unicorn app
https://...
submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides
store
Unicorn
management
service
SNS message filter:
fare >= x
distance >= y
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Use case: Prebooking campaigns
AWS Cloud
Wild Rydes
customer
Wild Rydes
customer app
https://...
submit-ride-prebooking
{
"from": "...",
"to": "...",
"when": "...",
"customer": "..."
}
201 Created
Location: http://...
Content-Location: ...
{
<prebooking-repr>
}
Ride-booking
service
Prebookings
store
Use case: Prebooking campaigns
AWS Cloud
Wild Rydes
customer
Wild Rydes
customer app
https://...
submit-ride-prebooking
{
"from": "...",
"to": "...",
"when": "...",
"customer": "..."
}
201 Created
Location: http://...
Content-Location: ...
{
<prebooking-repr>
}
Ride Booking
Service
Prebookings
store
Massive campaign with CTA:
Book today!
Use case: Prebooking campaigns
AWS Cloud
Wild Rydes
customer
Wild Rydes
customer app
https://...
submit-ride-prebooking
{
"from": "...",
"to": "...",
"when": "...",
"customer": "..."
}
Ride-booking
service
Further decoupling
Use case: Prebooking campaigns
AWS Cloud
Wild Rydes
customer
Wild Rydes
customer app
https://...
submit-ride-prebooking
{
"from": "...",
"to": "...",
"when": "...",
"customer": "..."
}
Ride-booking
service
Further decoupling
Prebooking
submission
resource
Use case: Prebooking campaigns
AWS Cloud
Further decoupling
Wild Rydes
customer
Wild Rydes
customer app
https://...
submit-ride-prebooking
{
"from": "...",
"to": "...",
"when": "...",
"customer": "..."
}
Prebooking
notification
topic
Ride-booking
service
Prebooking
submission
resource
Use case: Prebooking campaigns
AWS Cloud
Further decoupling
Wild Rydes
customer
Wild Rydes
customer app
https://...
submit-ride-prebooking
{
"from": "...",
"to": "...",
"when": "...",
"customer": "..."
}
Prebooking
notification
topic
202 Accepted
Location: ...
Content-Location: ...
{
<task-status-repr>
}
Ride-booking
service
Prebooking
submission
resource
Use case: Prebooking campaigns
AWS Cloud
Further decoupling
Prebooking
notification
buffer queue
Prebooking
processing
buffer queue
Wild Rydes
customer
Wild Rydes
customer app
https://...
submit-ride-prebooking
{
"from": "...",
"to": "...",
"when": "...",
"customer": "..."
}
Prebooking
notification
topic
Ride-booking
service
Prebooking
submission
resource
202 Accepted
Location: ...
Content-Location: ...
{
<task-status-repr>
}
Use case: Prebooking campaigns
AWS Cloud
Data lake
ingestion
service
Ride-booking
service /
Prebooking
processing
resource
Further decoupling
Prebooking
notification
buffer queue
Prebooking
processing
buffer queue
Wild Rydes
customer
Wild Rydes
customer app
https://...
submit-ride-prebooking
{
"from": "...",
"to": "...",
"when": "...",
"customer": "..."
}
Prebooking
notification
topic
Ride-booking
service
Prebooking
submission
resource
202 Accepted
Location: ...
Content-Location: ...
{
<task-status-repr>
}
Use case: Prebooking campaigns
AWS Cloud
Data lake
ingestion
service
Further decoupling
Prebooking
notification
buffer queue
Prebooking
processing
buffer queue
Wild Rydes
customer
Wild Rydes
customer app
https://...
submit-ride-prebooking
{
"from": "...",
"to": "...",
"when": "...",
"customer": "..."
}
Prebooking
notification
topic
Ride-booking
service
Prebooking
submission
resource
202 Accepted
Location: ...
Content-Location: ...
{
<task-status-repr>
} Massive campaign with CTA:
No, really! Book now!
Ride-booking
service /
Prebooking
processing
resource
Use case: Prebooking campaigns
Wild Rydes
customer
Wild Rydes
customer app
https://...
AWS Cloud
Data lake
ingestion
service
Action=SendMessage
&MessageBody=...
...
Prebooking
notification
topic
Even further decoupling
Prebooking
notification
buffer queue
Prebooking
processing
buffer queue
Prebooking
submission
buffer queue
200 OK
...
<SendMessageResponse>
...
</SendMessageResponse> Ride-booking
service
Prebooking
submission
resource
Ride-booking
service /
Prebooking
processing
resource
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Use case: Instant ride RFQ
Wild Rydes
customer
Wild Rydes
customer app
https://...
submit-instant-ride-rfq
AWS Cloud
Ride-booking
service
{
"from": "...",
"to": "...",
"customer": "..."
}
Scatter-gather
202 Accepted
Location: ...
Content-Location: ...
{
"links": { ... },
"status": "...",
"eta": "..."
}
Use case: Instant ride RFQ
Wild Rydes
customer
Wild Rydes
customer app
https://...
submit-instant-ride-rfq
AWS Cloud
Ride-booking
service
{
"from": "...",
"to": "...",
"customer": "..."
}
Request for
quotes topic
Scatter-gather
202 Accepted
Location: ...
Content-Location: ...
{
"links": { ... },
"status": "...",
"eta": "..."
}
Unicorn Management Service
Use case: Instant ride RFQ
Wild Rydes
customer
Wild Rydes
customer app
https://...
submit-instant-ride-rfq
AWS Cloud
Ride-booking
service
Unicorn
management
resource
Unicorn
management
resource
Unicorn
management
resource
{
"from": "...",
"to": "...",
"customer": "..."
}
Request for
quotes topic
Scatter-gather
…
202 Accepted
Location: ...
Content-Location: ...
{
"links": { ... },
"status": "...",
"eta": "..."
}
Unicorn Management Service
Use case: Instant ride RFQ
Wild Rydes
customer
Wild Rydes
customer app
https://...
submit-instant-ride-rfq
AWS Cloud
Ride-booking
service
Unicorn
management
resource
Unicorn
management
resource
Unicorn
management
resource
{
"from": "...",
"to": "...",
"customer": "..."
}
Request for
quotes topic
Scatter-gather
RFQ response
queue
…
202 Accepted
Location: ...
Content-Location: ...
{
"links": { ... },
"status": "...",
"eta": "..."
}
Unicorn Management Service
Use case: Instant ride RFQ
Wild Rydes
customer
Wild Rydes
customer app
https://...
submit-instant-ride-rfq
AWS Cloud
Ride-booking
service
Unicorn
management
resource
Unicorn
management
resource
Unicorn
management
resource
{
"from": "...",
"to": "...",
"customer": "..."
}
Request for
quotes topic
Scatter-gather
202 Accepted
Location: ...
Content-Location: ...
{
"links": { ... },
"status": "...",
"eta": "..."
}
RFQ response
queue
…
Unicorn Management Service
Use case: Instant ride RFQ
Wild Rydes
customer
Wild Rydes
customer app
https://...
retrieve-rfq-status
AWS Cloud
Ride-booking
service
Unicorn
management
resource
Unicorn
management
resource
Unicorn
management
resource
Request for
quotes topic
Scatter-gather
RFQ response
queue
…
Unicorn Management Service
Use case: Instant ride RFQ
Wild Rydes
customer
Wild Rydes
customer app
https://...
retrieve-rfq-status
AWS Cloud
Ride-booking
service
Unicorn
management
resource
Unicorn
management
resource
Unicorn
management
resource
Request for
quotes topic
Scatter-gather
RFQ response
queue
…
200 OK
{
"links": { ... },
"status": "running",
"eta": "..."
}
Unicorn Management Service
Use case: Instant ride RFQ
Wild Rydes
customer
Wild Rydes
customer app
https://...
retrieve-rfq-status
AWS Cloud
Ride-booking
service
Unicorn
management
resource
Unicorn
management
resource
Unicorn
management
resource
Request for
quotes topic
Scatter-gather
RFQ response
queue
…
200 OK
{
"links": { ...
<link-to-result>
... },
"status": "done"
}
Unicorn Management Service
Use case: Instant ride RFQ
Wild Rydes
customer
Wild Rydes
customer app
https://...
retrieve-rfq-result
AWS Cloud
Ride-booking
service
Unicorn
management
resource
Unicorn
management
resource
Unicorn
management
resource
Request for
quotes topic
Scatter-gather
RFQ response
queue
…
Unicorn Management Service
Use case: Instant ride RFQ
Wild Rydes
customer
Wild Rydes
customer app
https://...
retrieve-rfq-result
AWS Cloud
Ride-booking
service
Unicorn
management
resource
Unicorn
management
resource
Unicorn
management
resource
Request for
quotes topic
Scatter-gather
RFQ response
queue
…
200 OK
{
"links": { ... },
"from": "...",
"to": "...",
"quotes": "..."
}
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Resources
AWS blogs and other content on messaging and application integration
https://aws.amazon.com/messaging/
https://aws.amazon.com/event-driven-architecture/
https://aws.amazon.com/blogs/compute/category/messaging/
The German-language AWS-Podcast
Keep in mind
Loose coupling is always better than lousy coupling
bit.ly/aws-podcast
Vielen Dank für’s Zuschauen!
Dennis Traub, Developer Advocate, Amazon Web Services
Twitter: @dtraub
Podcast: bit.ly/aws-podcast

More Related Content

What's hot

AWS / CAPSiDE - Training - AWSome Day - Barcelona 2014
AWS / CAPSiDE - Training - AWSome Day - Barcelona 2014AWS / CAPSiDE - Training - AWSome Day - Barcelona 2014
AWS / CAPSiDE - Training - AWSome Day - Barcelona 2014CAPSiDE
 
Amazon web service
Amazon web serviceAmazon web service
Amazon web serviceParas Arora
 
Security overview-aws-lambda
Security overview-aws-lambdaSecurity overview-aws-lambda
Security overview-aws-lambdaVIJAY REDDY
 
AWSome Day Berlin 18.6.2014
AWSome Day Berlin 18.6.2014AWSome Day Berlin 18.6.2014
AWSome Day Berlin 18.6.2014tecRacer
 
AWS Security, IAM, Databases, Elasticity, Management Tools - AWSome Day Phila...
AWS Security, IAM, Databases, Elasticity, Management Tools - AWSome Day Phila...AWS Security, IAM, Databases, Elasticity, Management Tools - AWSome Day Phila...
AWS Security, IAM, Databases, Elasticity, Management Tools - AWSome Day Phila...Amazon Web Services
 
Datensicherheit mit AWS - AWS Security Web Day
Datensicherheit mit AWS - AWS Security Web DayDatensicherheit mit AWS - AWS Security Web Day
Datensicherheit mit AWS - AWS Security Web DayAWS Germany
 
Tech Talks On Site- Edição de Maio- AutoScaling
Tech Talks On Site- Edição de Maio- AutoScalingTech Talks On Site- Edição de Maio- AutoScaling
Tech Talks On Site- Edição de Maio- AutoScalingAmazon Web Services LATAM
 
Migrating Microsoft SQL to AWS - AWS Online Tech Talks
Migrating Microsoft SQL to AWS - AWS Online Tech TalksMigrating Microsoft SQL to AWS - AWS Online Tech Talks
Migrating Microsoft SQL to AWS - AWS Online Tech TalksAmazon Web Services
 
클라우드 기반 앱 현대화를 위한 5가지 체크리스트 - 윤석찬 :: AWS 현대적 애플리케이션 개발
클라우드 기반 앱 현대화를 위한 5가지 체크리스트 - 윤석찬 :: AWS 현대적 애플리케이션 개발클라우드 기반 앱 현대화를 위한 5가지 체크리스트 - 윤석찬 :: AWS 현대적 애플리케이션 개발
클라우드 기반 앱 현대화를 위한 5가지 체크리스트 - 윤석찬 :: AWS 현대적 애플리케이션 개발Amazon Web Services Korea
 
Security: A Driving Force Behind Cloud Adoption
Security: A Driving Force Behind Cloud AdoptionSecurity: A Driving Force Behind Cloud Adoption
Security: A Driving Force Behind Cloud AdoptionAmazon Web Services
 
AWSome Day Moscow 2014
AWSome Day Moscow 2014AWSome Day Moscow 2014
AWSome Day Moscow 2014Denis Batalov
 
Deep Dive on AWS Single Sign-On - AWS Online Tech Talks
Deep Dive on AWS Single Sign-On - AWS Online Tech TalksDeep Dive on AWS Single Sign-On - AWS Online Tech Talks
Deep Dive on AWS Single Sign-On - AWS Online Tech TalksAmazon Web Services
 
AWS Certified Solutions Architect Professional Course S6-S9
AWS Certified Solutions Architect Professional Course S6-S9AWS Certified Solutions Architect Professional Course S6-S9
AWS Certified Solutions Architect Professional Course S6-S9Neal Davis
 
AWSome Day - Barcelona - 26 Febrero
AWSome Day - Barcelona - 26 FebreroAWSome Day - Barcelona - 26 Febrero
AWSome Day - Barcelona - 26 FebreroCAPSiDE
 
re:Invent for Introverts 2021
re:Invent for Introverts 2021re:Invent for Introverts 2021
re:Invent for Introverts 2021AWS Chicago
 

What's hot (20)

Cloud Security (AWS)
Cloud Security (AWS)Cloud Security (AWS)
Cloud Security (AWS)
 
AWS / CAPSiDE - Training - AWSome Day - Barcelona 2014
AWS / CAPSiDE - Training - AWSome Day - Barcelona 2014AWS / CAPSiDE - Training - AWSome Day - Barcelona 2014
AWS / CAPSiDE - Training - AWSome Day - Barcelona 2014
 
Amazon web service
Amazon web serviceAmazon web service
Amazon web service
 
Security overview-aws-lambda
Security overview-aws-lambdaSecurity overview-aws-lambda
Security overview-aws-lambda
 
AWS 101 - Tel Aviv Summit 2018
AWS 101 - Tel Aviv Summit 2018AWS 101 - Tel Aviv Summit 2018
AWS 101 - Tel Aviv Summit 2018
 
AWSome Day Berlin 18.6.2014
AWSome Day Berlin 18.6.2014AWSome Day Berlin 18.6.2014
AWSome Day Berlin 18.6.2014
 
AWS Security, IAM, Databases, Elasticity, Management Tools - AWSome Day Phila...
AWS Security, IAM, Databases, Elasticity, Management Tools - AWSome Day Phila...AWS Security, IAM, Databases, Elasticity, Management Tools - AWSome Day Phila...
AWS Security, IAM, Databases, Elasticity, Management Tools - AWSome Day Phila...
 
9 Security Best Practices
9 Security Best Practices9 Security Best Practices
9 Security Best Practices
 
Datensicherheit mit AWS - AWS Security Web Day
Datensicherheit mit AWS - AWS Security Web DayDatensicherheit mit AWS - AWS Security Web Day
Datensicherheit mit AWS - AWS Security Web Day
 
Tech Talks On Site- Edição de Maio- AutoScaling
Tech Talks On Site- Edição de Maio- AutoScalingTech Talks On Site- Edição de Maio- AutoScaling
Tech Talks On Site- Edição de Maio- AutoScaling
 
Migrating Microsoft SQL to AWS - AWS Online Tech Talks
Migrating Microsoft SQL to AWS - AWS Online Tech TalksMigrating Microsoft SQL to AWS - AWS Online Tech Talks
Migrating Microsoft SQL to AWS - AWS Online Tech Talks
 
클라우드 기반 앱 현대화를 위한 5가지 체크리스트 - 윤석찬 :: AWS 현대적 애플리케이션 개발
클라우드 기반 앱 현대화를 위한 5가지 체크리스트 - 윤석찬 :: AWS 현대적 애플리케이션 개발클라우드 기반 앱 현대화를 위한 5가지 체크리스트 - 윤석찬 :: AWS 현대적 애플리케이션 개발
클라우드 기반 앱 현대화를 위한 5가지 체크리스트 - 윤석찬 :: AWS 현대적 애플리케이션 개발
 
Security: A Driving Force Behind Cloud Adoption
Security: A Driving Force Behind Cloud AdoptionSecurity: A Driving Force Behind Cloud Adoption
Security: A Driving Force Behind Cloud Adoption
 
AWSome Day Moscow 2014
AWSome Day Moscow 2014AWSome Day Moscow 2014
AWSome Day Moscow 2014
 
Deep Dive on AWS Single Sign-On - AWS Online Tech Talks
Deep Dive on AWS Single Sign-On - AWS Online Tech TalksDeep Dive on AWS Single Sign-On - AWS Online Tech Talks
Deep Dive on AWS Single Sign-On - AWS Online Tech Talks
 
Enterprise Applications on AWS
Enterprise Applications on AWSEnterprise Applications on AWS
Enterprise Applications on AWS
 
AWS Certified Solutions Architect Professional Course S6-S9
AWS Certified Solutions Architect Professional Course S6-S9AWS Certified Solutions Architect Professional Course S6-S9
AWS Certified Solutions Architect Professional Course S6-S9
 
CloudCircle AWS Training
CloudCircle AWS Training CloudCircle AWS Training
CloudCircle AWS Training
 
AWSome Day - Barcelona - 26 Febrero
AWSome Day - Barcelona - 26 FebreroAWSome Day - Barcelona - 26 Febrero
AWSome Day - Barcelona - 26 Febrero
 
re:Invent for Introverts 2021
re:Invent for Introverts 2021re:Invent for Introverts 2021
re:Invent for Introverts 2021
 

Similar to Application Integration Patterns (not only) for Microservices

Content Delivery: accelerare in modo sicuro e flessibile siti web e applicazioni
Content Delivery: accelerare in modo sicuro e flessibile siti web e applicazioniContent Delivery: accelerare in modo sicuro e flessibile siti web e applicazioni
Content Delivery: accelerare in modo sicuro e flessibile siti web e applicazioniAmazon Web Services
 
Brokered Messaging in Windows Azure
Brokered Messaging in Windows AzureBrokered Messaging in Windows Azure
Brokered Messaging in Windows AzureNeil Mackenzie
 
AWS September Webinar Series - Infrastructure Deployment and Monitoring with ...
AWS September Webinar Series - Infrastructure Deployment and Monitoring with ...AWS September Webinar Series - Infrastructure Deployment and Monitoring with ...
AWS September Webinar Series - Infrastructure Deployment and Monitoring with ...Amazon Web Services
 
Message-Driven Architecture on AWS
Message-Driven Architecture on AWSMessage-Driven Architecture on AWS
Message-Driven Architecture on AWSjeromevdl
 
(ARC342) Designing & Building An End-To-End Email Solution Using AWS
(ARC342) Designing & Building An End-To-End Email Solution Using AWS(ARC342) Designing & Building An End-To-End Email Solution Using AWS
(ARC342) Designing & Building An End-To-End Email Solution Using AWSAmazon Web Services
 
AWS re:Invent 2016: How Netflix Achieves Email Delivery at Global Scale with ...
AWS re:Invent 2016: How Netflix Achieves Email Delivery at Global Scale with ...AWS re:Invent 2016: How Netflix Achieves Email Delivery at Global Scale with ...
AWS re:Invent 2016: How Netflix Achieves Email Delivery at Global Scale with ...Amazon Web Services
 
Message Oriented Middleware
Message Oriented MiddlewareMessage Oriented Middleware
Message Oriented MiddlewareManuswath K.B
 
10135 a 06
10135 a 0610135 a 06
10135 a 06Bố Su
 
Zombie Apocalypse Workshop by Warren Santer and Kyle Somers, Solutions Archit...
Zombie Apocalypse Workshop by Warren Santer and Kyle Somers, Solutions Archit...Zombie Apocalypse Workshop by Warren Santer and Kyle Somers, Solutions Archit...
Zombie Apocalypse Workshop by Warren Santer and Kyle Somers, Solutions Archit...Amazon Web Services
 
AWS re:Invent 2016: Migrating Enterprise Messaging to the Cloud (ENT217)
AWS re:Invent 2016: Migrating Enterprise Messaging to the Cloud (ENT217)AWS re:Invent 2016: Migrating Enterprise Messaging to the Cloud (ENT217)
AWS re:Invent 2016: Migrating Enterprise Messaging to the Cloud (ENT217)Amazon Web Services
 
Best Practices for Deploying Microsoft Workloads on AWS
Best Practices for Deploying Microsoft Workloads on AWSBest Practices for Deploying Microsoft Workloads on AWS
Best Practices for Deploying Microsoft Workloads on AWSZlatan Dzinic
 
Micro on NATS - Microservices with Messaging
Micro on NATS - Microservices with MessagingMicro on NATS - Microservices with Messaging
Micro on NATS - Microservices with MessagingApcera
 
Getting started with aws io t.compressed.compressed
Getting started with aws io t.compressed.compressedGetting started with aws io t.compressed.compressed
Getting started with aws io t.compressed.compressedAmazon Web Services
 
Secure your critical workload on AWS
Secure your critical workload on AWSSecure your critical workload on AWS
Secure your critical workload on AWSAmazon Web Services
 

Similar to Application Integration Patterns (not only) for Microservices (20)

AWS Mobile with Lambda and SNS
AWS Mobile with Lambda and SNSAWS Mobile with Lambda and SNS
AWS Mobile with Lambda and SNS
 
AWS Serverless key services
AWS Serverless key servicesAWS Serverless key services
AWS Serverless key services
 
Content Delivery: accelerare in modo sicuro e flessibile siti web e applicazioni
Content Delivery: accelerare in modo sicuro e flessibile siti web e applicazioniContent Delivery: accelerare in modo sicuro e flessibile siti web e applicazioni
Content Delivery: accelerare in modo sicuro e flessibile siti web e applicazioni
 
Intro to Azure Service Bus
Intro to Azure Service BusIntro to Azure Service Bus
Intro to Azure Service Bus
 
Brokered Messaging in Windows Azure
Brokered Messaging in Windows AzureBrokered Messaging in Windows Azure
Brokered Messaging in Windows Azure
 
AWS September Webinar Series - Infrastructure Deployment and Monitoring with ...
AWS September Webinar Series - Infrastructure Deployment and Monitoring with ...AWS September Webinar Series - Infrastructure Deployment and Monitoring with ...
AWS September Webinar Series - Infrastructure Deployment and Monitoring with ...
 
Message-Driven Architecture on AWS
Message-Driven Architecture on AWSMessage-Driven Architecture on AWS
Message-Driven Architecture on AWS
 
(ARC342) Designing & Building An End-To-End Email Solution Using AWS
(ARC342) Designing & Building An End-To-End Email Solution Using AWS(ARC342) Designing & Building An End-To-End Email Solution Using AWS
(ARC342) Designing & Building An End-To-End Email Solution Using AWS
 
AWS re:Invent 2016: How Netflix Achieves Email Delivery at Global Scale with ...
AWS re:Invent 2016: How Netflix Achieves Email Delivery at Global Scale with ...AWS re:Invent 2016: How Netflix Achieves Email Delivery at Global Scale with ...
AWS re:Invent 2016: How Netflix Achieves Email Delivery at Global Scale with ...
 
Message Oriented Middleware
Message Oriented MiddlewareMessage Oriented Middleware
Message Oriented Middleware
 
Staying Secure in the Cloud
Staying Secure in the CloudStaying Secure in the Cloud
Staying Secure in the Cloud
 
10135 a 06
10135 a 0610135 a 06
10135 a 06
 
DDoS Resiliency
DDoS ResiliencyDDoS Resiliency
DDoS Resiliency
 
Zombie Apocalypse Workshop by Warren Santer and Kyle Somers, Solutions Archit...
Zombie Apocalypse Workshop by Warren Santer and Kyle Somers, Solutions Archit...Zombie Apocalypse Workshop by Warren Santer and Kyle Somers, Solutions Archit...
Zombie Apocalypse Workshop by Warren Santer and Kyle Somers, Solutions Archit...
 
AWS re:Invent 2016: Migrating Enterprise Messaging to the Cloud (ENT217)
AWS re:Invent 2016: Migrating Enterprise Messaging to the Cloud (ENT217)AWS re:Invent 2016: Migrating Enterprise Messaging to the Cloud (ENT217)
AWS re:Invent 2016: Migrating Enterprise Messaging to the Cloud (ENT217)
 
Messaging in the AWS Cloud
Messaging in the AWS CloudMessaging in the AWS Cloud
Messaging in the AWS Cloud
 
Best Practices for Deploying Microsoft Workloads on AWS
Best Practices for Deploying Microsoft Workloads on AWSBest Practices for Deploying Microsoft Workloads on AWS
Best Practices for Deploying Microsoft Workloads on AWS
 
Micro on NATS - Microservices with Messaging
Micro on NATS - Microservices with MessagingMicro on NATS - Microservices with Messaging
Micro on NATS - Microservices with Messaging
 
Getting started with aws io t.compressed.compressed
Getting started with aws io t.compressed.compressedGetting started with aws io t.compressed.compressed
Getting started with aws io t.compressed.compressed
 
Secure your critical workload on AWS
Secure your critical workload on AWSSecure your critical workload on AWS
Secure your critical workload on AWS
 

More from Dennis Traub

Cloud ist keine Strategie - Keynote des AWS Cloud Day, Solingen
Cloud ist keine Strategie - Keynote des AWS Cloud Day, SolingenCloud ist keine Strategie - Keynote des AWS Cloud Day, Solingen
Cloud ist keine Strategie - Keynote des AWS Cloud Day, SolingenDennis Traub
 
Cloud ist keine Strategie - AWS Tech Community Summit Cologne, 2017
Cloud ist keine Strategie - AWS Tech Community Summit Cologne, 2017Cloud ist keine Strategie - AWS Tech Community Summit Cologne, 2017
Cloud ist keine Strategie - AWS Tech Community Summit Cologne, 2017Dennis Traub
 
Taming the Monolith - Microservices Meetup Hamburg
Taming the Monolith - Microservices Meetup HamburgTaming the Monolith - Microservices Meetup Hamburg
Taming the Monolith - Microservices Meetup HamburgDennis Traub
 
Taming the Monolith
Taming the MonolithTaming the Monolith
Taming the MonolithDennis Traub
 
DDD / Microservices @ Trivento Spring Camp, Utrecht, 2015
DDD / Microservices @ Trivento Spring Camp, Utrecht, 2015DDD / Microservices @ Trivento Spring Camp, Utrecht, 2015
DDD / Microservices @ Trivento Spring Camp, Utrecht, 2015Dennis Traub
 
Strategic Appplication Development with Domain-Driven Design (DDD)
Strategic Appplication Development with Domain-Driven Design (DDD)Strategic Appplication Development with Domain-Driven Design (DDD)
Strategic Appplication Development with Domain-Driven Design (DDD)Dennis Traub
 
An Introduction to CQRS
An Introduction to CQRSAn Introduction to CQRS
An Introduction to CQRSDennis Traub
 
Strategischer Anwendungsentwurf mit Domain-Driven Design
Strategischer Anwendungsentwurf mit Domain-Driven DesignStrategischer Anwendungsentwurf mit Domain-Driven Design
Strategischer Anwendungsentwurf mit Domain-Driven DesignDennis Traub
 
DDD Modeling Workshop
DDD Modeling WorkshopDDD Modeling Workshop
DDD Modeling WorkshopDennis Traub
 
CQRS-Einführung - Teil 2
CQRS-Einführung - Teil 2CQRS-Einführung - Teil 2
CQRS-Einführung - Teil 2Dennis Traub
 
CQRS - Eine Einführung - NOUG 2011
CQRS - Eine Einführung - NOUG 2011CQRS - Eine Einführung - NOUG 2011
CQRS - Eine Einführung - NOUG 2011Dennis Traub
 

More from Dennis Traub (12)

Cloud ist keine Strategie - Keynote des AWS Cloud Day, Solingen
Cloud ist keine Strategie - Keynote des AWS Cloud Day, SolingenCloud ist keine Strategie - Keynote des AWS Cloud Day, Solingen
Cloud ist keine Strategie - Keynote des AWS Cloud Day, Solingen
 
Cloud ist keine Strategie - AWS Tech Community Summit Cologne, 2017
Cloud ist keine Strategie - AWS Tech Community Summit Cologne, 2017Cloud ist keine Strategie - AWS Tech Community Summit Cologne, 2017
Cloud ist keine Strategie - AWS Tech Community Summit Cologne, 2017
 
Taming the Monolith - Microservices Meetup Hamburg
Taming the Monolith - Microservices Meetup HamburgTaming the Monolith - Microservices Meetup Hamburg
Taming the Monolith - Microservices Meetup Hamburg
 
Taming the Monolith
Taming the MonolithTaming the Monolith
Taming the Monolith
 
DDD / Microservices @ Trivento Spring Camp, Utrecht, 2015
DDD / Microservices @ Trivento Spring Camp, Utrecht, 2015DDD / Microservices @ Trivento Spring Camp, Utrecht, 2015
DDD / Microservices @ Trivento Spring Camp, Utrecht, 2015
 
Strategic Appplication Development with Domain-Driven Design (DDD)
Strategic Appplication Development with Domain-Driven Design (DDD)Strategic Appplication Development with Domain-Driven Design (DDD)
Strategic Appplication Development with Domain-Driven Design (DDD)
 
An Introduction to CQRS
An Introduction to CQRSAn Introduction to CQRS
An Introduction to CQRS
 
From DDD to CQRS
From DDD to CQRSFrom DDD to CQRS
From DDD to CQRS
 
Strategischer Anwendungsentwurf mit Domain-Driven Design
Strategischer Anwendungsentwurf mit Domain-Driven DesignStrategischer Anwendungsentwurf mit Domain-Driven Design
Strategischer Anwendungsentwurf mit Domain-Driven Design
 
DDD Modeling Workshop
DDD Modeling WorkshopDDD Modeling Workshop
DDD Modeling Workshop
 
CQRS-Einführung - Teil 2
CQRS-Einführung - Teil 2CQRS-Einführung - Teil 2
CQRS-Einführung - Teil 2
 
CQRS - Eine Einführung - NOUG 2011
CQRS - Eine Einführung - NOUG 2011CQRS - Eine Einführung - NOUG 2011
CQRS - Eine Einführung - NOUG 2011
 

Recently uploaded

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 

Recently uploaded (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 

Application Integration Patterns (not only) for Microservices

  • 1. Dennis Traub, Developer Advocate, Amazon Web Services Twitter: @dtraub Podcast: bit.ly/aws-podcast Application Integration Patterns for Microservices
  • 2. Application Integration Patterns (not only) for Microservices Dennis Traub, Developer Advocate, Amazon Web Services Twitter: @dtraub Podcast: bit.ly/aws-podcast
  • 3. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 4. Two Architectural Principles: - Divide and Conquer - Loose (not lousy) Coupling
  • 5. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. “If your application is cloud native, or large-scale, or distributed, and doesn’t include a messaging component, that’s probably a bug.” Tim Bray Former Senior Principal Engineer at AWS Co-Author of the original XML Spec
  • 6. Potential drawbacks of synchronous systems Synchronous systems are tightly coupled A problem in a synchronous downstream dependency has immediate impact on the upstream callers Retries from upstream callers can all too easily fan out and amplify problems Photo: Dirk Fröhner
  • 7. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 8. Message exchange One way Request response Message channel Receiver No response expected Synchronous vs. fire-and-forget Response expected Return address Correlation ID Sender Message channel Responder Requester Message channel
  • 9. Message channels Point-to-point (queue) Publish-subscribe (topic) Consumed by one receiver Easy to scale Flatten peak loads Consumed by all subscribers Durable subscriber Receivers Sender Queue Subscribers Publisher Topic
  • 10. Message channels Point-to-point (queue) Publish-subscribe (topic) AWS service for queue functionality: Amazon Simple Queue Services (Amazon SQS) Serverless & cloud-native AWS service for topic functionality: Amazon Simple Notification Service (Amazon SNS) Serverless & cloud-native Receivers Sender Subscribers Publisher Amazon SQS Amazon SNS
  • 11. Message channels Point-to-point (queue) Publish-subscribe (topic) AWS service for queue functionality (nonserverless): Amazon MQ (managed Apache Active MQ) For applications constrained to protocols like JMS, AMQP, etc. AWS service for topic functionality (nonserverless): Amazon MQ (managed Apache Active MQ) For applications constrained to protocols like JMS, AMQP, etc. Receivers Sender Subscribers Publisher Amazon MQ Amazon MQ
  • 12. Message channels Visibility timeout, inflight messages, message acknowledgement Time Receive message Receive message Delete or acknowledge message Visibility timeout 🔥 Time Visibility timeout Receive message Receive message Receive message Receive message
  • 13. Message channels Topic-queue-chaining Allows fan-out and receiver scale-out at the same time Publisher Topic Queue Queue Receivers Application 1 Application 2
  • 14. Message channels Dead-letter queue Transient failure mitigation Poison-pill handling Sender Queue Receivers X Dead-letter queue
  • 15. Message channels FIFO queue Message groups Guaranteed ordering Messages grouped by discriminator attribute Example: Amazon SQS with sender provided message Group IDs: No further consumption as long as messages with particular message group IDs are invisible Queue Receiver Sender Receivers Sender Queue Order
  • 16. Message channels FIFO queue Message groups Guaranteed ordering Messages grouped by discriminator attribute Example: Amazon SQS with sender provided message Group IDs: No further consumption as long as messages with particular message group IDs are invisible Queue Receiver Sender Receivers Sender Queue Order
  • 17. Message channels FIFO queue Message groups Guaranteed ordering Messages grouped by discriminator attribute Example: Amazon SQS with sender provided message Group IDs: No further consumption as long as messages with particular message group IDs are invisible Queue Receiver Sender Receivers Sender Queue Order
  • 18. Message channels FIFO queue Message groups Guaranteed ordering Messages grouped by discriminator attribute Example: Amazon SQS with sender provided message Group IDs: No further consumption as long as messages with particular message group IDs are invisible Queue Receiver Sender Receivers Sender Queue Order
  • 19. Message channels FIFO queue Message groups Guaranteed ordering Messages grouped by discriminator attribute Example: Amazon SQS with sender provided message Group IDs: No further consumption as long as messages with particular message group IDs are invisible Queue Receiver Sender Receivers Sender Queue Order
  • 20. Message channels FIFO queue Message groups Guaranteed ordering Messages grouped by discriminator attribute Example: Amazon SQS with sender provided message Group IDs: No further consumption as long as messages with particular message group IDs are invisible Queue Receiver Sender Receivers Sender Queue Order
  • 21. Message channels FIFO queue Message groups Guaranteed ordering Messages grouped by discriminator attribute Example: Amazon SQS with sender provided message Group IDs: No further consumption as long as messages with particular message group IDs are invisible Queue Receiver Sender Receivers Sender Queue Order
  • 22. Message channels FIFO queue Message groups Guaranteed ordering Messages grouped by discriminator attribute Example: Amazon SQS with sender provided message Group IDs: No further consumption as long as messages with particular message group IDs are invisible Queue Receiver Sender Receivers Sender Queue Order
  • 23. Message channels FIFO queue Message groups Guaranteed ordering Messages grouped by discriminator attribute Example: Amazon SQS with sender provided message Group IDs: No further consumption as long as messages with particular message group IDs are invisible Queue Receiver Sender Receivers Sender Queue Order!
  • 24. Message channels Message delivery QoS At least once At most once Exactly once Queue Receiver Sender Exactly once? Well! How to deal with a situation where the message was consumed but never acknowledged? → Your systems still have to be able to handle duplicate messages → Messages should be processed in an idempotent manner Choose between at least once or at most once
  • 25. Message routing Message filter Recipient list Receive only a relevant subset of messages Controlled by subscriber Publisher remains completely unaware Send only a relevant subset of messages to a subscriber Controlled by publisher or separate component Potentially adds coupling Subscribers Publisher Subscribers Publisher Topic color = blue color = yellow Recipient list
  • 26. Message routing Scatter-gather Requester Topic Responders Queue Aggregator Processor How to distribute a request across potentially interested or relevant parties and capture their individual responses? - RFQ scenarios, search for best response, etc. - Parallel processing scenarios
  • 27. Message routing Pipes and filters Event triggers chain of processing steps (“filters”) Knowledge of destination for next steps is wired into each filter Event source Pipe Filter Filter Pipe Pipe Result target … Filter Step 1 Step 2 Step n
  • 28. Message routing Saga orchestration Event triggers orchestrated workflow Knowledge of workflow is externalized into orchestrator component, as well as for potential rollback Workflow participants remain as loosely coupled as possible Processor Processor Processor Processor Event source Orchestrator … Step 1 Step 2 Step n-1 Step n Result target
  • 29. Message routing Saga orchestration AWS service for saga orchestration (serverless): AWS Step Functions Processor Processor Processor Processor Event source Orchestrator … Step 1 Step 2 Step n-1 Step n Result target
  • 30. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 31.
  • 32. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 33. Use case: Submit a ride completion AWS Cloud { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } Unicorn Wild Rydes unicorn app https://... submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service
  • 34. Use case: Submit a ride completion AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } Unicorn Wild Rydes unicorn app https://... submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service
  • 35. Use case: Submit a ride completion AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } Interested in rides with fare >= x distance >= y Rides store Unicorn Wild Rydes unicorn app https://... submit-ride-completion Unicorn management service 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> }
  • 36. Use case: Submit a ride completion AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } Unicorn Wild Rydes unicorn app https://... submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn Management Service Interested in rides with fare >= x distance >= y Integration via database?
  • 37. Use case: Submit a ride completion AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } Unicorn Wild Rydes unicorn app https://... submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn Management Service Integration via database? Oh my! Interested in rides with fare >= x distance >= y
  • 38. Use case: Submit a ride completion AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } Unicorn Wild Rydes unicorn app https://... submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn Management Service Integration via REST APIs? Interested in rides with fare >= x distance >= y
  • 39. Use case: Submit a ride completion AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } Unicorn Wild Rydes unicorn app https://... submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn Management Service Integration via REST APIs? Absolutely, but … Interested in rides with fare >= x distance >= y
  • 40. Use case: Submit a ride completion AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } https://... https://... https://... https://... https://... Recipient list Unicorn Wild Rydes unicorn app https://... submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service
  • 41. Use case: Submit a ride completion AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } https://... https://... https://... https://... https://... Recipient list service Unicorn Request distribution service https://... Wild Rydes unicorn app https://... submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service
  • 42. Use case: Submit a ride completion AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } https://... https://... https://... https://... https://... Self-managed filtering Unicorn Request distribution service https://... Wild Rydes Unicorn app https://... submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service Interested in rides with fare >= x distance >= y
  • 43. Use case: Submit a ride completion AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } https://... https://... https://... https://... https://... Self-managed filtering Unicorn Request Distribution Service https://... Wild Rydes unicorn app https://... submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn Management Service Interested in rides with fare >= x distance >= y Integration via messaging? Absolutely!
  • 44. Use case: Submit a ride completion AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } Publish-subscribe (topic) Unicorn Ride completion topic Wild Rydes unicorn app https://... submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service
  • 45. Use case: Submit a ride completion AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } SNS message filter: fare >= x distance >= y Message filter Unicorn Ride completion topic Wild Rydes unicorn app https://... submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service
  • 46. Use case: Submit a ride completion Unicorn AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } Ride completion topic Topic-queue-chaining Wild Rydes unicorn app https://... submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service SNS message filter: fare >= x distance >= y
  • 47. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 48. Use case: Prebooking campaigns AWS Cloud Wild Rydes customer Wild Rydes customer app https://... submit-ride-prebooking { "from": "...", "to": "...", "when": "...", "customer": "..." } 201 Created Location: http://... Content-Location: ... { <prebooking-repr> } Ride-booking service Prebookings store
  • 49. Use case: Prebooking campaigns AWS Cloud Wild Rydes customer Wild Rydes customer app https://... submit-ride-prebooking { "from": "...", "to": "...", "when": "...", "customer": "..." } 201 Created Location: http://... Content-Location: ... { <prebooking-repr> } Ride Booking Service Prebookings store Massive campaign with CTA: Book today!
  • 50. Use case: Prebooking campaigns AWS Cloud Wild Rydes customer Wild Rydes customer app https://... submit-ride-prebooking { "from": "...", "to": "...", "when": "...", "customer": "..." } Ride-booking service Further decoupling
  • 51. Use case: Prebooking campaigns AWS Cloud Wild Rydes customer Wild Rydes customer app https://... submit-ride-prebooking { "from": "...", "to": "...", "when": "...", "customer": "..." } Ride-booking service Further decoupling Prebooking submission resource
  • 52. Use case: Prebooking campaigns AWS Cloud Further decoupling Wild Rydes customer Wild Rydes customer app https://... submit-ride-prebooking { "from": "...", "to": "...", "when": "...", "customer": "..." } Prebooking notification topic Ride-booking service Prebooking submission resource
  • 53. Use case: Prebooking campaigns AWS Cloud Further decoupling Wild Rydes customer Wild Rydes customer app https://... submit-ride-prebooking { "from": "...", "to": "...", "when": "...", "customer": "..." } Prebooking notification topic 202 Accepted Location: ... Content-Location: ... { <task-status-repr> } Ride-booking service Prebooking submission resource
  • 54. Use case: Prebooking campaigns AWS Cloud Further decoupling Prebooking notification buffer queue Prebooking processing buffer queue Wild Rydes customer Wild Rydes customer app https://... submit-ride-prebooking { "from": "...", "to": "...", "when": "...", "customer": "..." } Prebooking notification topic Ride-booking service Prebooking submission resource 202 Accepted Location: ... Content-Location: ... { <task-status-repr> }
  • 55. Use case: Prebooking campaigns AWS Cloud Data lake ingestion service Ride-booking service / Prebooking processing resource Further decoupling Prebooking notification buffer queue Prebooking processing buffer queue Wild Rydes customer Wild Rydes customer app https://... submit-ride-prebooking { "from": "...", "to": "...", "when": "...", "customer": "..." } Prebooking notification topic Ride-booking service Prebooking submission resource 202 Accepted Location: ... Content-Location: ... { <task-status-repr> }
  • 56. Use case: Prebooking campaigns AWS Cloud Data lake ingestion service Further decoupling Prebooking notification buffer queue Prebooking processing buffer queue Wild Rydes customer Wild Rydes customer app https://... submit-ride-prebooking { "from": "...", "to": "...", "when": "...", "customer": "..." } Prebooking notification topic Ride-booking service Prebooking submission resource 202 Accepted Location: ... Content-Location: ... { <task-status-repr> } Massive campaign with CTA: No, really! Book now! Ride-booking service / Prebooking processing resource
  • 57. Use case: Prebooking campaigns Wild Rydes customer Wild Rydes customer app https://... AWS Cloud Data lake ingestion service Action=SendMessage &MessageBody=... ... Prebooking notification topic Even further decoupling Prebooking notification buffer queue Prebooking processing buffer queue Prebooking submission buffer queue 200 OK ... <SendMessageResponse> ... </SendMessageResponse> Ride-booking service Prebooking submission resource Ride-booking service / Prebooking processing resource
  • 58. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 59. Use case: Instant ride RFQ Wild Rydes customer Wild Rydes customer app https://... submit-instant-ride-rfq AWS Cloud Ride-booking service { "from": "...", "to": "...", "customer": "..." } Scatter-gather 202 Accepted Location: ... Content-Location: ... { "links": { ... }, "status": "...", "eta": "..." }
  • 60. Use case: Instant ride RFQ Wild Rydes customer Wild Rydes customer app https://... submit-instant-ride-rfq AWS Cloud Ride-booking service { "from": "...", "to": "...", "customer": "..." } Request for quotes topic Scatter-gather 202 Accepted Location: ... Content-Location: ... { "links": { ... }, "status": "...", "eta": "..." }
  • 61. Unicorn Management Service Use case: Instant ride RFQ Wild Rydes customer Wild Rydes customer app https://... submit-instant-ride-rfq AWS Cloud Ride-booking service Unicorn management resource Unicorn management resource Unicorn management resource { "from": "...", "to": "...", "customer": "..." } Request for quotes topic Scatter-gather … 202 Accepted Location: ... Content-Location: ... { "links": { ... }, "status": "...", "eta": "..." }
  • 62. Unicorn Management Service Use case: Instant ride RFQ Wild Rydes customer Wild Rydes customer app https://... submit-instant-ride-rfq AWS Cloud Ride-booking service Unicorn management resource Unicorn management resource Unicorn management resource { "from": "...", "to": "...", "customer": "..." } Request for quotes topic Scatter-gather RFQ response queue … 202 Accepted Location: ... Content-Location: ... { "links": { ... }, "status": "...", "eta": "..." }
  • 63. Unicorn Management Service Use case: Instant ride RFQ Wild Rydes customer Wild Rydes customer app https://... submit-instant-ride-rfq AWS Cloud Ride-booking service Unicorn management resource Unicorn management resource Unicorn management resource { "from": "...", "to": "...", "customer": "..." } Request for quotes topic Scatter-gather 202 Accepted Location: ... Content-Location: ... { "links": { ... }, "status": "...", "eta": "..." } RFQ response queue …
  • 64. Unicorn Management Service Use case: Instant ride RFQ Wild Rydes customer Wild Rydes customer app https://... retrieve-rfq-status AWS Cloud Ride-booking service Unicorn management resource Unicorn management resource Unicorn management resource Request for quotes topic Scatter-gather RFQ response queue …
  • 65. Unicorn Management Service Use case: Instant ride RFQ Wild Rydes customer Wild Rydes customer app https://... retrieve-rfq-status AWS Cloud Ride-booking service Unicorn management resource Unicorn management resource Unicorn management resource Request for quotes topic Scatter-gather RFQ response queue … 200 OK { "links": { ... }, "status": "running", "eta": "..." }
  • 66. Unicorn Management Service Use case: Instant ride RFQ Wild Rydes customer Wild Rydes customer app https://... retrieve-rfq-status AWS Cloud Ride-booking service Unicorn management resource Unicorn management resource Unicorn management resource Request for quotes topic Scatter-gather RFQ response queue … 200 OK { "links": { ... <link-to-result> ... }, "status": "done" }
  • 67. Unicorn Management Service Use case: Instant ride RFQ Wild Rydes customer Wild Rydes customer app https://... retrieve-rfq-result AWS Cloud Ride-booking service Unicorn management resource Unicorn management resource Unicorn management resource Request for quotes topic Scatter-gather RFQ response queue …
  • 68. Unicorn Management Service Use case: Instant ride RFQ Wild Rydes customer Wild Rydes customer app https://... retrieve-rfq-result AWS Cloud Ride-booking service Unicorn management resource Unicorn management resource Unicorn management resource Request for quotes topic Scatter-gather RFQ response queue … 200 OK { "links": { ... }, "from": "...", "to": "...", "quotes": "..." }
  • 69. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 70. Resources AWS blogs and other content on messaging and application integration https://aws.amazon.com/messaging/ https://aws.amazon.com/event-driven-architecture/ https://aws.amazon.com/blogs/compute/category/messaging/ The German-language AWS-Podcast Keep in mind Loose coupling is always better than lousy coupling bit.ly/aws-podcast
  • 71. Vielen Dank für’s Zuschauen! Dennis Traub, Developer Advocate, Amazon Web Services Twitter: @dtraub Podcast: bit.ly/aws-podcast