SlideShare a Scribd company logo
1 of 64
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
© 2022, Amazon Web Services, Inc. or its affiliates.
Decoupled microservices
Building scalable applications
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Agenda (45 min)
Introduction
Application integration patterns
Concrete use cases: Our labs today
Choose your own adventure: Work on your most relevant labs
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
© 2022, Amazon Web Services, Inc. or its affiliates.
Introduction
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
If your application is cloud-native,
large scale, or distributed, and it
doesn’t include a messaging
component, that’s probably a bug.
Tim Bray
formerly AWS Messaging, Workflow Management
4
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Potential drawbacks of
synchronous systems
• Synchronous systems are tightly
coupled
• A problem in a synchronous
downstream dependency has
immediate impact on upstream callers
• Retries from upstream callers can
all too easily fan out and amplify
problems
Photo: Dirk Fröhner
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
© 2022, Amazon Web Services, Inc. or its affiliates.
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
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
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
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
C
C
Subscribers
Publisher
Topic
C C
C
C
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
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
Publisher
Amazon SQS Amazon SNS
C
C
Sender
Subscribers
C
C
C
C
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
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
C
C C
C
C
C
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
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
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
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
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Message routing
Scatter-gather
Requester
Topic
Responders
Queue
Aggregato
r
Processor
How to distribute a request across potentially interested or relevant parties and capture their individual responses?
• RFQ scenarios, or search for best response
• Parallel processing scenarios; for example, divide and conquer
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Message routing
Pipes and filters
• Event triggers chain of processing steps (“filters”)
• Knowledge of destination for next steps is wired into each filter
• Similar patterns: Chain of responsibility, processing pipeline, saga choreography
Event
source
Pipe Filter Filter
Pipe Pipe Result target
…
Filter
Step 1 Step 2 Step n
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
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
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Message routing
Saga orchestration
• AWS Step Functions for Serverless Saga orchestration
Processor
Processor
Processor
Processor
Event
source
Orchestrator
…
Step 1
Step 2 Step n-1
Step n
Result
target
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
© 2022, Amazon Web Services, Inc. or its affiliates.
Concrete use cases
labs for today
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Context: Wild Rydes, Inc.
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Choose your path
• We have four labs for you today, plus a
common foundation lab
• After intro of use cases, context, and
patterns, you can pick the most relevant
labs for you
• We will summarize the labs again for you
afterwards
Photo: Dirk Fröhner
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Choose your path
Photo: Dirk Fröhner
Foundation
Lab 0
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Choose your path
Photo: Dirk Fröhner
Foundation
Lab 0
Lab 1
Fan-out,
Message-filtering
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Choose your path
Photo: Dirk Fröhner
Foundation
Lab 0
Lab 1
Fan-out,
Message-filtering
Lab 2
Topic-queue-chaining,
Queues as buffering LBs
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Choose your path
Photo: Dirk Fröhner
Foundation
Lab 0
Lab 1
Fan-out,
Message-filtering
Lab 2
Topic-queue-chaining,
Queues as buffering LBs
Lab 3
Scatter-gather
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Choose your path
Foundation
Lab 0
Lab 1
Fan-out,
Message-filtering
Lab 2
Topic-queue-chaining,
Queues as buffering LBs
Photo: Dirk Fröhner
Lab 3
Scatter-gather
Lab 4
Saga orchestration
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
© 2022, Amazon Web Services, Inc. or its affiliates.
Use case: Submit a
for labs 1 + 2
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
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": "..."
}
POST /submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides store
Unicorn
management
service
Wild Rydes
unicorn app
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
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": "..."
}
POST /submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides store
Unicorn
management
service
Interested in rides with
fare >= x
distance >= y
Wild Rydes
unicorn app
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
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": "..."
}
POST /submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides store
Unicorn
management
service
Integration via database?
Wild Rydes
unicorn app
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
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": "..."
}
POST /submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides store
Unicorn
management
service
Integration via database?
Oh my!
Wild Rydes
unicorn app
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
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": "..."
}
POST /submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides store
Unicorn
management
service
Integration via REST APIs?
Wild Rydes
unicorn app
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
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": "..."
}
POST /submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides store
Unicorn
management
service
Integration via REST APIs?
Absolutely, but…
Wild Rydes
unicorn app
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
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": "..."
}
POST /submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides store
Unicorn
management
service
https://...
https://...
https://...
https://...
https://...
Wild Rydes
unicorn app
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Use case: Submit a ride completion
R E C I P I E N T L I S T S E R V I C E
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
POST /submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides store
Unicorn
management
service
https://...
https://...
https://...
https://...
https://...
Request
distribution
service
Wild Rydes
unicorn app
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Use case: Submit a ride completion
S E L F - M A N A G E D F I L T E R I N G
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
POST /submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides store
Unicorn
management
service
https://...
https://...
https://...
https://...
https://...
Request
distribution
service
Interested in rides with
fare >= x
distance >= y
Wild Rydes
unicorn app
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
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": "..."
}
POST /submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides store
Unicorn
management
service
https://...
https://...
https://...
https://...
https://...
Request
distribution
service
Integration via messaging?
Absolutely!
Wild Rydes
unicorn app
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Use case: Submit a ride completion
P U B L I S H - S U B S C R I B E ( T O P I C )
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
POST /submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides store
Unicorn
management
service
Ride
completion
topic
Wild Rydes
unicorn app
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Use case: Submit a ride completion
M E S S A G E F I L T E R
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
POST /submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides store
Unicorn
management
service
Ride
completion
topic
SNS message filter:
fare >= x
distance >= y
Wild Rydes
unicorn app
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Use case: Submit a ride completion
M E S S A G E F I L T E R
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
POST /submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides store
Unicorn
management
service
Ride
completion
topic
SNS message filter:
fare >= x
distance >= y
Lab 1
Wild Rydes
unicorn app
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Use case: Submit a ride completion
T O P I C - Q U E U E - C H A I N I N G
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
POST /submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides store
Unicorn
management
service
Ride
completion
topic
Lab 2
Wild Rydes
unicorn app
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
© 2022, Amazon Web Services, Inc. or its affiliates.
Use case:
for lab 3
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Unicorn management service
Use case: Instant ride RFQ
S C A T T E R - G A T H E R
AWS Cloud
Unicorn
management
resource
{
"from": "...",
"to": "...",
"customer": "..."
}
POST / submit-instant-ride-rfq
202 Accepted
Location: ...
Content-Location: ...
{
"links": { ... },
"status": "...",
"eta": "..."
}
Unicorn
management
resource
Unicorn
management
resource
Request for
quotes topic
Ride booking
service
…
Wild Rydes
unicorn app
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Unicorn management service
Use case: Instant ride RFQ
S C A T T E R - G A T H E R
AWS Cloud
Unicorn
management
resource
GET / retrieve-rfq-status
Unicorn
management
resource
Unicorn
management
resource
…
Request for
quotes topic
Ride booking
service
RFQ response
queue
Wild Rydes
unicorn app
200 OK
{
"links": { ... },
"status":
"running",
"eta": "..."
}
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Unicorn management service
Use case: Instant ride RFQ
S C A T T E R - G A T H E R
AWS Cloud
Unicorn
management
resource
GET / retrieve-rfq-status
Unicorn
management
resource
Unicorn
management
resource
…
Request for
quotes topic
Ride booking
service
RFQ response
queue
Wild Rydes
unicorn app
200 OK
{
"links": { ...
<link-to-
result>
... },
"status": "done"
}
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Unicorn management service
Use case: Instant ride RFQ
S C A T T E R - G A T H E R
AWS Cloud
Unicorn
management
resource
GET / retrieve-rfq-result
Unicorn
management
resource
Unicorn
management
resource
…
Request for
quotes topic
Ride booking
service
RFQ response
queue
Wild Rydes
unicorn app
200 OK
{
"links": { ... },
"from": "...",
"to": "...",
"quotes": "..."
}
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
© 2022, Amazon Web Services, Inc. or its affiliates.
Use case: Fare
for lab 4
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
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": "..."
}
POST /submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides store
Unicorn
management
service
Ride
completion
topic
Wild Rydes
unicorn app
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Use case: Submit a ride completion
AWS Cloud
Customer
notification
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
POST /submit-ride-completion
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Rides store
Unicorn
management
service
Ride
completion
topic
Wild Rydes
unicorn app
Customer
accounting
service
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Use case: Fare collection
S A G A O R C H E S T R A T I O N
1. Credit card pre-authorization
Payment
service
Payment
gateway API
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Use case: Fare collection
S A G A O R C H E S T R A T I O N
1. Credit card pre-authorization
2. Charge card using pre-authorization code
Payment
service
Payment
gateway API
Payment
service
Payment
gateway API
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Use case: Fare collection
S A G A O R C H E S T R A T I O N
1. Credit card pre-authorization
2. Charge card using pre-authorization code
3. Update customer account
Customer
accounting service
Accounting
system
Payment
service
Payment
gateway API
Payment
service
Payment
gateway API
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Use case: Fare collection
S A G A O R C H E S T R A T I O N
1. Credit card pre-authorization
2. Charge card using pre-authorization code
3. Update customer account
To be treated as one distributed TA, to leave the systems in a
semantically consistent state
Customer
accounting service
Accounting
system
Payment
service
Payment
gateway API
Payment
service
Payment
gateway API
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
© 2022, Amazon Web Services, Inc. or its affiliates.
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Use case: Submit a ride completion
L A B 1 A R C H I T E C T U R E : F A N - O U T , M E S S A G E F I L T E R I N G
AWS Cloud
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
SNS message filter:
fare >= x
distance >= y
Ride
completion
topic
Rides
store
Unicorn
management
service
https://...
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Wild Rydes
unicorn app
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Use case: Submit a ride completion
L A B 2 A R C H I T E C T U R E : T O P I C - Q U E U E - C H A I N I N G , Q U E U E S A S B U F F E R I N G L O A D B A L A N C E R S
AWS Cloud
SNS message filter:
fare >= x
distance >= y
Customer
notification
service
Customer
accounting
service
Customer
loyalty
service
Data lake
ingestion
service
Extraordinary
rides
service
Ride
completion
topic
Rides
store
Unicorn
management
service
{
"from": "...",
"to": "...",
"duration": "...",
"distance": "...",
"customer": "...",
"fare": "..."
}
201 Created
Location: ...
Content-Location: ...
{
<cmpl-ride-repr>
}
Wild Rydes
unicorn app
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Unicorn management service
Use case: Instant ride RFQ
L A B 3 A R C H I T E C T U R E : S C A T T E R - G A T H E R
AWS Cloud
Unicorn
management
resource
Unicorn
management
resource
Unicorn
management
resource
…
Request for
quotes topic
Ride booking
service
RFQ response
queue
Wild Rydes
unicorn app
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Use case: Fare collection
L A B 4 A R C H I T E C T U R E : S A G A O R C H E S T R A T I O N
1. Credit card pre-authorization
2. Charge card using pre-authorization code
3. Update customer account
To be treated as one distributed TA, to leave the systems in a
semantically consistent state
Customer
accounting service
Accounting
system
Payment
service
Payment
gateway API
Payment
service
Payment
gateway API
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
© 2022, Amazon Web Services, Inc. or its affiliates.
Lab 0 / overview
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Your for today:
https://dashboard.eventengine.run
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Now, choose your own adventure
https://async-messaging.workshop.aws
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
© 2022, Amazon Web Services, Inc. or its affiliates.
call to
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Resources & call to action
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/
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Resources & call to action
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/
AWS workshops on messaging and application integration
• https://async-messaging.workshop.aws/
• http://mqworkshop.com/
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Resources & call to action
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/
AWS workshops on messaging and application integration
• https://async-messaging.workshop.aws/
• http://mqworkshop.com/
Keep in mind, loose coupling is better than lousy coupling
DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS
© 2022, Amazon Web Services, Inc. or its affiliates.
Thank you!
© 2022, Amazon Web Services, Inc. or its affiliates.

More Related Content

Similar to Decoupled microservices-Building scalable applications.pptx

Applying ML on your Data in Motion with AWS and Confluent | Joseph Morais, Co...
Applying ML on your Data in Motion with AWS and Confluent | Joseph Morais, Co...Applying ML on your Data in Motion with AWS and Confluent | Joseph Morais, Co...
Applying ML on your Data in Motion with AWS and Confluent | Joseph Morais, Co...HostedbyConfluent
 
AWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applicationsAWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applicationsCobus Bernard
 
ENT201 Simplifying Microsoft Architectures with AWS Services
ENT201 Simplifying Microsoft Architectures with AWS ServicesENT201 Simplifying Microsoft Architectures with AWS Services
ENT201 Simplifying Microsoft Architectures with AWS ServicesAmazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 
CICDforModernApplications_Stockholm.pdf
CICDforModernApplications_Stockholm.pdfCICDforModernApplications_Stockholm.pdf
CICDforModernApplications_Stockholm.pdfAmazon Web Services
 
Running Thousands of Kafka Clusters on AWS With Mehari Beyene and Tom Schutte...
Running Thousands of Kafka Clusters on AWS With Mehari Beyene and Tom Schutte...Running Thousands of Kafka Clusters on AWS With Mehari Beyene and Tom Schutte...
Running Thousands of Kafka Clusters on AWS With Mehari Beyene and Tom Schutte...HostedbyConfluent
 
20210608 - Desarrollo de aplicaciones en la nube
20210608 - Desarrollo de aplicaciones en la nube20210608 - Desarrollo de aplicaciones en la nube
20210608 - Desarrollo de aplicaciones en la nubeMarcia Villalba
 
AWS_Certified_Solutions_Architect_Associate_SAA-C03_Slides_Tutorials_Dojo.pdf
AWS_Certified_Solutions_Architect_Associate_SAA-C03_Slides_Tutorials_Dojo.pdfAWS_Certified_Solutions_Architect_Associate_SAA-C03_Slides_Tutorials_Dojo.pdf
AWS_Certified_Solutions_Architect_Associate_SAA-C03_Slides_Tutorials_Dojo.pdfsairamnagarajan5
 
Frome Code to Cloud: Exploring AWS CDK for Infrastructure Management
Frome Code to Cloud: Exploring AWS CDK for Infrastructure ManagementFrome Code to Cloud: Exploring AWS CDK for Infrastructure Management
Frome Code to Cloud: Exploring AWS CDK for Infrastructure ManagementSujay Pillai
 
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...Amazon Web Services Korea
 
5 incredible (and uncommon) serverless patterns
5 incredible (and uncommon) serverless patterns5 incredible (and uncommon) serverless patterns
5 incredible (and uncommon) serverless patternsDavidVictoria12
 
Look Before You Leap: Migrating On-Premises Hadoop to AWS
Look Before You Leap: Migrating On-Premises Hadoop to AWSLook Before You Leap: Migrating On-Premises Hadoop to AWS
Look Before You Leap: Migrating On-Premises Hadoop to AWSDevOps.com
 
Getting started building your first serverless web application on AWS
Getting started building  your first serverless web application on AWSGetting started building  your first serverless web application on AWS
Getting started building your first serverless web application on AWSIoannis Polyzos
 
NET309_Best Practices for Securing an Amazon Virtual Private Cloud
NET309_Best Practices for Securing an Amazon Virtual Private CloudNET309_Best Practices for Securing an Amazon Virtual Private Cloud
NET309_Best Practices for Securing an Amazon Virtual Private CloudAmazon Web Services
 
Introduction to Serverless Computing - OOP Munich
 Introduction to Serverless Computing - OOP Munich Introduction to Serverless Computing - OOP Munich
Introduction to Serverless Computing - OOP MunichBoaz Ziniman
 
Introduction_to_AWS_Services__Networking,_Security.pptx
Introduction_to_AWS_Services__Networking,_Security.pptxIntroduction_to_AWS_Services__Networking,_Security.pptx
Introduction_to_AWS_Services__Networking,_Security.pptxGauravSharma164138
 
Earn Your DevOps Black Belt: Deployment Scenarios with AWS CloudFormation (DE...
Earn Your DevOps Black Belt: Deployment Scenarios with AWS CloudFormation (DE...Earn Your DevOps Black Belt: Deployment Scenarios with AWS CloudFormation (DE...
Earn Your DevOps Black Belt: Deployment Scenarios with AWS CloudFormation (DE...Amazon Web Services
 
Networking Best Practices for Your Serverless Applications
Networking Best Practices for Your Serverless ApplicationsNetworking Best Practices for Your Serverless Applications
Networking Best Practices for Your Serverless ApplicationsChris Munns
 
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 Decoupled microservices-Building scalable applications.pptx (20)

Applying ML on your Data in Motion with AWS and Confluent | Joseph Morais, Co...
Applying ML on your Data in Motion with AWS and Confluent | Joseph Morais, Co...Applying ML on your Data in Motion with AWS and Confluent | Joseph Morais, Co...
Applying ML on your Data in Motion with AWS and Confluent | Joseph Morais, Co...
 
AWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applicationsAWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applications
 
ENT201 Simplifying Microsoft Architectures with AWS Services
ENT201 Simplifying Microsoft Architectures with AWS ServicesENT201 Simplifying Microsoft Architectures with AWS Services
ENT201 Simplifying Microsoft Architectures with AWS Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 
CICDforModernApplications_Stockholm.pdf
CICDforModernApplications_Stockholm.pdfCICDforModernApplications_Stockholm.pdf
CICDforModernApplications_Stockholm.pdf
 
Running Thousands of Kafka Clusters on AWS With Mehari Beyene and Tom Schutte...
Running Thousands of Kafka Clusters on AWS With Mehari Beyene and Tom Schutte...Running Thousands of Kafka Clusters on AWS With Mehari Beyene and Tom Schutte...
Running Thousands of Kafka Clusters on AWS With Mehari Beyene and Tom Schutte...
 
20210608 - Desarrollo de aplicaciones en la nube
20210608 - Desarrollo de aplicaciones en la nube20210608 - Desarrollo de aplicaciones en la nube
20210608 - Desarrollo de aplicaciones en la nube
 
AWS_Certified_Solutions_Architect_Associate_SAA-C03_Slides_Tutorials_Dojo.pdf
AWS_Certified_Solutions_Architect_Associate_SAA-C03_Slides_Tutorials_Dojo.pdfAWS_Certified_Solutions_Architect_Associate_SAA-C03_Slides_Tutorials_Dojo.pdf
AWS_Certified_Solutions_Architect_Associate_SAA-C03_Slides_Tutorials_Dojo.pdf
 
Frome Code to Cloud: Exploring AWS CDK for Infrastructure Management
Frome Code to Cloud: Exploring AWS CDK for Infrastructure ManagementFrome Code to Cloud: Exploring AWS CDK for Infrastructure Management
Frome Code to Cloud: Exploring AWS CDK for Infrastructure Management
 
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
 
5 incredible (and uncommon) serverless patterns
5 incredible (and uncommon) serverless patterns5 incredible (and uncommon) serverless patterns
5 incredible (and uncommon) serverless patterns
 
Re cap2018
Re cap2018Re cap2018
Re cap2018
 
Look Before You Leap: Migrating On-Premises Hadoop to AWS
Look Before You Leap: Migrating On-Premises Hadoop to AWSLook Before You Leap: Migrating On-Premises Hadoop to AWS
Look Before You Leap: Migrating On-Premises Hadoop to AWS
 
Getting started building your first serverless web application on AWS
Getting started building  your first serverless web application on AWSGetting started building  your first serverless web application on AWS
Getting started building your first serverless web application on AWS
 
NET309_Best Practices for Securing an Amazon Virtual Private Cloud
NET309_Best Practices for Securing an Amazon Virtual Private CloudNET309_Best Practices for Securing an Amazon Virtual Private Cloud
NET309_Best Practices for Securing an Amazon Virtual Private Cloud
 
Introduction to Serverless Computing - OOP Munich
 Introduction to Serverless Computing - OOP Munich Introduction to Serverless Computing - OOP Munich
Introduction to Serverless Computing - OOP Munich
 
Introduction_to_AWS_Services__Networking,_Security.pptx
Introduction_to_AWS_Services__Networking,_Security.pptxIntroduction_to_AWS_Services__Networking,_Security.pptx
Introduction_to_AWS_Services__Networking,_Security.pptx
 
Earn Your DevOps Black Belt: Deployment Scenarios with AWS CloudFormation (DE...
Earn Your DevOps Black Belt: Deployment Scenarios with AWS CloudFormation (DE...Earn Your DevOps Black Belt: Deployment Scenarios with AWS CloudFormation (DE...
Earn Your DevOps Black Belt: Deployment Scenarios with AWS CloudFormation (DE...
 
Networking Best Practices for Your Serverless Applications
Networking Best Practices for Your Serverless ApplicationsNetworking Best Practices for Your Serverless Applications
Networking Best Practices for Your Serverless Applications
 
Secure your critical workload on AWS
Secure your critical workload on AWSSecure your critical workload on AWS
Secure your critical workload on AWS
 

Recently uploaded

Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 

Recently uploaded (20)

Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 

Decoupled microservices-Building scalable applications.pptx

  • 1. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. Decoupled microservices Building scalable applications
  • 2. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Agenda (45 min) Introduction Application integration patterns Concrete use cases: Our labs today Choose your own adventure: Work on your most relevant labs
  • 3. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. Introduction
  • 4. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. If your application is cloud-native, large scale, or distributed, and it doesn’t include a messaging component, that’s probably a bug. Tim Bray formerly AWS Messaging, Workflow Management 4
  • 5. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Potential drawbacks of synchronous systems • Synchronous systems are tightly coupled • A problem in a synchronous downstream dependency has immediate impact on upstream callers • Retries from upstream callers can all too easily fan out and amplify problems Photo: Dirk Fröhner
  • 6. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates.
  • 7. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. 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
  • 8. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. 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 C C Subscribers Publisher Topic C C C C
  • 9. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. 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 Publisher Amazon SQS Amazon SNS C C Sender Subscribers C C C C
  • 10. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. 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 C C C C C C
  • 11. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. 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
  • 12. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. 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
  • 13. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Message routing Scatter-gather Requester Topic Responders Queue Aggregato r Processor How to distribute a request across potentially interested or relevant parties and capture their individual responses? • RFQ scenarios, or search for best response • Parallel processing scenarios; for example, divide and conquer
  • 14. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Message routing Pipes and filters • Event triggers chain of processing steps (“filters”) • Knowledge of destination for next steps is wired into each filter • Similar patterns: Chain of responsibility, processing pipeline, saga choreography Event source Pipe Filter Filter Pipe Pipe Result target … Filter Step 1 Step 2 Step n
  • 15. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. 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
  • 16. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Message routing Saga orchestration • AWS Step Functions for Serverless Saga orchestration Processor Processor Processor Processor Event source Orchestrator … Step 1 Step 2 Step n-1 Step n Result target
  • 17. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. Concrete use cases labs for today
  • 18. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Context: Wild Rydes, Inc.
  • 19. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Choose your path • We have four labs for you today, plus a common foundation lab • After intro of use cases, context, and patterns, you can pick the most relevant labs for you • We will summarize the labs again for you afterwards Photo: Dirk Fröhner
  • 20. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Choose your path Photo: Dirk Fröhner Foundation Lab 0
  • 21. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Choose your path Photo: Dirk Fröhner Foundation Lab 0 Lab 1 Fan-out, Message-filtering
  • 22. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Choose your path Photo: Dirk Fröhner Foundation Lab 0 Lab 1 Fan-out, Message-filtering Lab 2 Topic-queue-chaining, Queues as buffering LBs
  • 23. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Choose your path Photo: Dirk Fröhner Foundation Lab 0 Lab 1 Fan-out, Message-filtering Lab 2 Topic-queue-chaining, Queues as buffering LBs Lab 3 Scatter-gather
  • 24. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Choose your path Foundation Lab 0 Lab 1 Fan-out, Message-filtering Lab 2 Topic-queue-chaining, Queues as buffering LBs Photo: Dirk Fröhner Lab 3 Scatter-gather Lab 4 Saga orchestration
  • 25. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. Use case: Submit a for labs 1 + 2
  • 26. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. 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": "..." } POST /submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service Wild Rydes unicorn app
  • 27. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. 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": "..." } POST /submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service Interested in rides with fare >= x distance >= y Wild Rydes unicorn app
  • 28. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. 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": "..." } POST /submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service Integration via database? Wild Rydes unicorn app
  • 29. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. 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": "..." } POST /submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service Integration via database? Oh my! Wild Rydes unicorn app
  • 30. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. 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": "..." } POST /submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service Integration via REST APIs? Wild Rydes unicorn app
  • 31. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. 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": "..." } POST /submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service Integration via REST APIs? Absolutely, but… Wild Rydes unicorn app
  • 32. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. 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": "..." } POST /submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service https://... https://... https://... https://... https://... Wild Rydes unicorn app
  • 33. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Use case: Submit a ride completion R E C I P I E N T L I S T S E R V I C E AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } POST /submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service https://... https://... https://... https://... https://... Request distribution service Wild Rydes unicorn app
  • 34. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Use case: Submit a ride completion S E L F - M A N A G E D F I L T E R I N G AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } POST /submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service https://... https://... https://... https://... https://... Request distribution service Interested in rides with fare >= x distance >= y Wild Rydes unicorn app
  • 35. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. 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": "..." } POST /submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service https://... https://... https://... https://... https://... Request distribution service Integration via messaging? Absolutely! Wild Rydes unicorn app
  • 36. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Use case: Submit a ride completion P U B L I S H - S U B S C R I B E ( T O P I C ) AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } POST /submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service Ride completion topic Wild Rydes unicorn app
  • 37. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Use case: Submit a ride completion M E S S A G E F I L T E R AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } POST /submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service Ride completion topic SNS message filter: fare >= x distance >= y Wild Rydes unicorn app
  • 38. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Use case: Submit a ride completion M E S S A G E F I L T E R AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } POST /submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service Ride completion topic SNS message filter: fare >= x distance >= y Lab 1 Wild Rydes unicorn app
  • 39. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Use case: Submit a ride completion T O P I C - Q U E U E - C H A I N I N G AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } POST /submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service Ride completion topic Lab 2 Wild Rydes unicorn app
  • 40. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. Use case: for lab 3
  • 41. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Unicorn management service Use case: Instant ride RFQ S C A T T E R - G A T H E R AWS Cloud Unicorn management resource { "from": "...", "to": "...", "customer": "..." } POST / submit-instant-ride-rfq 202 Accepted Location: ... Content-Location: ... { "links": { ... }, "status": "...", "eta": "..." } Unicorn management resource Unicorn management resource Request for quotes topic Ride booking service … Wild Rydes unicorn app
  • 42. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Unicorn management service Use case: Instant ride RFQ S C A T T E R - G A T H E R AWS Cloud Unicorn management resource GET / retrieve-rfq-status Unicorn management resource Unicorn management resource … Request for quotes topic Ride booking service RFQ response queue Wild Rydes unicorn app 200 OK { "links": { ... }, "status": "running", "eta": "..." }
  • 43. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Unicorn management service Use case: Instant ride RFQ S C A T T E R - G A T H E R AWS Cloud Unicorn management resource GET / retrieve-rfq-status Unicorn management resource Unicorn management resource … Request for quotes topic Ride booking service RFQ response queue Wild Rydes unicorn app 200 OK { "links": { ... <link-to- result> ... }, "status": "done" }
  • 44. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Unicorn management service Use case: Instant ride RFQ S C A T T E R - G A T H E R AWS Cloud Unicorn management resource GET / retrieve-rfq-result Unicorn management resource Unicorn management resource … Request for quotes topic Ride booking service RFQ response queue Wild Rydes unicorn app 200 OK { "links": { ... }, "from": "...", "to": "...", "quotes": "..." }
  • 45. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. Use case: Fare for lab 4
  • 46. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. 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": "..." } POST /submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service Ride completion topic Wild Rydes unicorn app
  • 47. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Use case: Submit a ride completion AWS Cloud Customer notification service Customer loyalty service Data lake ingestion service Extraordinary rides service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } POST /submit-ride-completion 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Rides store Unicorn management service Ride completion topic Wild Rydes unicorn app Customer accounting service
  • 48. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Use case: Fare collection S A G A O R C H E S T R A T I O N 1. Credit card pre-authorization Payment service Payment gateway API
  • 49. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Use case: Fare collection S A G A O R C H E S T R A T I O N 1. Credit card pre-authorization 2. Charge card using pre-authorization code Payment service Payment gateway API Payment service Payment gateway API
  • 50. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Use case: Fare collection S A G A O R C H E S T R A T I O N 1. Credit card pre-authorization 2. Charge card using pre-authorization code 3. Update customer account Customer accounting service Accounting system Payment service Payment gateway API Payment service Payment gateway API
  • 51. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Use case: Fare collection S A G A O R C H E S T R A T I O N 1. Credit card pre-authorization 2. Charge card using pre-authorization code 3. Update customer account To be treated as one distributed TA, to leave the systems in a semantically consistent state Customer accounting service Accounting system Payment service Payment gateway API Payment service Payment gateway API
  • 52. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates.
  • 53. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Use case: Submit a ride completion L A B 1 A R C H I T E C T U R E : F A N - O U T , M E S S A G E F I L T E R I N G AWS Cloud Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service SNS message filter: fare >= x distance >= y Ride completion topic Rides store Unicorn management service https://... { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Wild Rydes unicorn app
  • 54. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Use case: Submit a ride completion L A B 2 A R C H I T E C T U R E : T O P I C - Q U E U E - C H A I N I N G , Q U E U E S A S B U F F E R I N G L O A D B A L A N C E R S AWS Cloud SNS message filter: fare >= x distance >= y Customer notification service Customer accounting service Customer loyalty service Data lake ingestion service Extraordinary rides service Ride completion topic Rides store Unicorn management service { "from": "...", "to": "...", "duration": "...", "distance": "...", "customer": "...", "fare": "..." } 201 Created Location: ... Content-Location: ... { <cmpl-ride-repr> } Wild Rydes unicorn app
  • 55. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Unicorn management service Use case: Instant ride RFQ L A B 3 A R C H I T E C T U R E : S C A T T E R - G A T H E R AWS Cloud Unicorn management resource Unicorn management resource Unicorn management resource … Request for quotes topic Ride booking service RFQ response queue Wild Rydes unicorn app
  • 56. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Use case: Fare collection L A B 4 A R C H I T E C T U R E : S A G A O R C H E S T R A T I O N 1. Credit card pre-authorization 2. Charge card using pre-authorization code 3. Update customer account To be treated as one distributed TA, to leave the systems in a semantically consistent state Customer accounting service Accounting system Payment service Payment gateway API Payment service Payment gateway API
  • 57. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. Lab 0 / overview
  • 58. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Your for today: https://dashboard.eventengine.run
  • 59. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Now, choose your own adventure https://async-messaging.workshop.aws
  • 60. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. call to
  • 61. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Resources & call to action 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/
  • 62. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Resources & call to action 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/ AWS workshops on messaging and application integration • https://async-messaging.workshop.aws/ • http://mqworkshop.com/
  • 63. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Resources & call to action 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/ AWS workshops on messaging and application integration • https://async-messaging.workshop.aws/ • http://mqworkshop.com/ Keep in mind, loose coupling is better than lousy coupling
  • 64. DECOUPLED MICROSERVICES: BUILDING SCALABLE APPLICATIONS © 2022, Amazon Web Services, Inc. or its affiliates. Thank you! © 2022, Amazon Web Services, Inc. or its affiliates.

Editor's Notes

  1. And also remember that DLQs can enrich this architecture (leaving it out to keep the diagram digestible).
  2. CTA: Lake Formation, web day talk, blogs. Link to AWS P&U landing page. AWS big data landing page, data lakes and analytics on AWS.