SlideShare a Scribd company logo
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

Cloud Security (AWS)
Cloud Security (AWS)Cloud Security (AWS)
Cloud Security (AWS)
Scott Arveseth
 
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
CAPSiDE
 
Amazon web service
Amazon web serviceAmazon web service
Amazon web service
Paras Arora
 
Security overview-aws-lambda
Security overview-aws-lambdaSecurity overview-aws-lambda
Security overview-aws-lambda
VIJAY REDDY
 
AWS 101 - Tel Aviv Summit 2018
AWS 101 - Tel Aviv Summit 2018AWS 101 - Tel Aviv Summit 2018
AWS 101 - Tel Aviv Summit 2018
Amazon Web Services
 
AWSome Day Berlin 18.6.2014
AWSome Day Berlin 18.6.2014AWSome Day Berlin 18.6.2014
AWSome Day Berlin 18.6.2014
tecRacer
 
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
 
9 Security Best Practices
9 Security Best Practices9 Security Best Practices
9 Security Best Practices
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 Day
AWS 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- AutoScaling
Amazon 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 Talks
Amazon 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 Adoption
Amazon Web Services
 
AWSome Day Moscow 2014
AWSome Day Moscow 2014AWSome Day Moscow 2014
AWSome Day Moscow 2014
Denis 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 Talks
Amazon Web Services
 
Enterprise Applications on AWS
Enterprise Applications on AWSEnterprise Applications on AWS
Enterprise Applications on AWS
Amazon Web Services LATAM
 
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
Neal Davis
 
CloudCircle AWS Training
CloudCircle AWS Training CloudCircle AWS Training
CloudCircle AWS Training
Saasforce Consulting Private Limited
 
AWSome Day - Barcelona - 26 Febrero
AWSome Day - Barcelona - 26 FebreroAWSome Day - Barcelona - 26 Febrero
AWSome Day - Barcelona - 26 Febrero
CAPSiDE
 
re:Invent for Introverts 2021
re:Invent for Introverts 2021re:Invent for Introverts 2021
re:Invent for Introverts 2021
AWS 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

AWS Mobile with Lambda and SNS
AWS Mobile with Lambda and SNSAWS Mobile with Lambda and SNS
AWS Mobile with Lambda and SNS
Amazon Web Services
 
AWS Serverless key services
AWS Serverless key servicesAWS Serverless key services
AWS Serverless key services
Faisal Ahmed Farooqui
 
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
Amazon Web Services
 
Intro to Azure Service Bus
Intro to Azure Service BusIntro to Azure Service Bus
Intro to Azure Service Bus
George Grammatikos
 
Brokered Messaging in Windows Azure
Brokered Messaging in Windows AzureBrokered Messaging in Windows Azure
Brokered Messaging in Windows Azure
Neil 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 AWS
jeromevdl
 
(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
Amazon 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 Middleware
Manuswath K.B
 
Staying Secure in the Cloud
Staying Secure in the CloudStaying Secure in the Cloud
Staying Secure in the Cloud
Amazon Web Services
 
10135 a 06
10135 a 0610135 a 06
10135 a 06
Bố Su
 
DDoS Resiliency
DDoS ResiliencyDDoS Resiliency
DDoS Resiliency
Amazon Web Services
 
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
 
Messaging in the AWS Cloud
Messaging in the AWS CloudMessaging in the AWS Cloud
Messaging in the AWS Cloud
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 AWS
Zlatan Dzinic
 
Micro on NATS - Microservices with Messaging
Micro on NATS - Microservices with MessagingMicro on NATS - Microservices with Messaging
Micro on NATS - Microservices with Messaging
Apcera
 
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
Amazon Web Services
 
Secure your critical workload on AWS
Secure your critical workload on AWSSecure your critical workload on AWS
Secure your critical workload on AWS
Amazon 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, Solingen
Dennis 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, 2017
Dennis Traub
 
Taming the Monolith - Microservices Meetup Hamburg
Taming the Monolith - Microservices Meetup HamburgTaming the Monolith - Microservices Meetup Hamburg
Taming the Monolith - Microservices Meetup Hamburg
Dennis Traub
 
Taming the Monolith
Taming the MonolithTaming the Monolith
Taming the Monolith
Dennis 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, 2015
Dennis 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 CQRS
Dennis Traub
 
From DDD to CQRS
From DDD to CQRSFrom DDD to CQRS
From DDD to CQRS
Dennis Traub
 
Strategischer Anwendungsentwurf mit Domain-Driven Design
Strategischer Anwendungsentwurf mit Domain-Driven DesignStrategischer Anwendungsentwurf mit Domain-Driven Design
Strategischer Anwendungsentwurf mit Domain-Driven Design
Dennis Traub
 
DDD Modeling Workshop
DDD Modeling WorkshopDDD Modeling Workshop
DDD Modeling Workshop
Dennis Traub
 
CQRS-Einführung - Teil 2
CQRS-Einführung - Teil 2CQRS-Einführung - Teil 2
CQRS-Einführung - Teil 2
Dennis Traub
 
CQRS - Eine Einführung - NOUG 2011
CQRS - Eine Einführung - NOUG 2011CQRS - Eine Einführung - NOUG 2011
CQRS - Eine Einführung - NOUG 2011
Dennis 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

Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 

Recently uploaded (20)

Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 

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