SlideShare a Scribd company logo
Eliminate the Complexities of Event-
Driven Architecture with Domain-
Driven Design!
Sheen Brisals
Architect, Author,
AWS Hero, Team Topologies Advocate
Eliminate the complexities of Event-Driven Architecture with Domain-Driven Design
Coupling
Eliminate the complexities of Event-Driven Architecture with Domain-Driven Design
Eliminate the complexities of Event-Driven Architecture with Domain-Driven Design
If any two entities are connected, they are coupled.
Celestial bodies affect each other through gravitational
forces — they remain coupled despite the substantial
distances between them.
- Balancing Coupling in Software Design
Coupled = Connected
If everything is somehow coupled,
why is coupling considered as bad?
Legacy
ecomme
rce
Tax
System
VPC
Node.js
+
React
Elastic Beanstalk
container
Server contents Server contents
Tax
Products CRM
Fulfillment Rewards
VPC
Gateway
Corporate
data center
Server contents
Legacy
ecomme
rce
Tax
System
VPC
Node.js
+
React
Elastic Beanstalk
container
Server contents Server contents
Tax
Products CRM
Fulfillment Rewards
VPC
Gateway
Corporate
data center
Server contents
503 Service
Unavailable
Tightly coupled!
Tight coupling is Bad
Loose coupling is Good
A high degree of interdependence between
different components or modules in a system.
A minimal dependency exists between
different components or modules in a system.
To loosely couple or connect…
Independent systems
Messages (Queues)
Events (Pub-Sub)
Event-Driven Architecture
sheen-brisals
sheenbrisals
sbrisals.medium.com
#TheServerlessBook #TheSpeakerBook
Architect at Sky
AWS Serverless Hero
Team Topologies Advocate
Sheen Brisals
leanpub.com/TheSpeakerBook
1. A quick intro to EDA
Agenda
3. DDD: How can it (& others) help EDA?
2. EDA: Mistakes & Pains
4. Takeaways
Service A Service B
Invokes with a request
Returns with a response
Service C Service D
Submits a batch job
Acknowledgment
Job
status
Updates
Polls
Service C Service D
Submits a batch job
Acknowledgment
Notification
Service E Service F
Messages
Sends a
message
Receives a
message
Event-driven architecture (EDA) is an architectural
concept that uses events to communicate between
applications asynchronously.
The elements of EDA
Customer
accounts
Finance
Customer
service
Event
broker
account
created
account
created
account
created
• Event producer
• Event consumer
• Event broker or bus
• Events
account
deleted
account
deleted
Eliminate the complexities of Event-Driven Architecture with Domain-Driven Design
Eliminate the complexities of Event-Driven Architecture with Domain-Driven Design
EDA is Awesome!!
Eliminate the complexities of Event-Driven Architecture with Domain-Driven Design
Mistakes and Pains of EDA
E(ve)ntangled Architecture
Event Gridlock
leading to an
Eliminate the complexities of Event-Driven Architecture with Domain-Driven Design
Lambda pinball
architecture!
- Thoughtworks
Start-up teams
Teams new to EDA
Too focused on the MVP
No strategic vision
Event Driven to Event Intrusion
Distributed [big ball] Monolith
leading to a
System A
System B
System C
System D
System E
Event Broker
Resources / Services
System A
System B
System C
System D
System E
System A
System B
System C
System D
System E
System B
System C
System D
System E
Engineering freedom!
Feature blindness
Quick-win mindset
No design principles
High cognitive load
The Unavoidable Duplicates
Oversight by Engineers
and the
Customer
accounts
Finance
Customer
service
Event
broker
account
created
account
created
account
created
account
deleted
account
deleted
Network outage
Consumer unavailable
Quota exceeded
Rate limited
Customer
accounts
Finance
Customer
service
Event
broker
account
created
account
created
account
created
account
deleted
account
deleted
Network outage
Consumer unavailable
Quota exceeded
Rate limited
Lack of knowledge & care
No event identity
No error handling - DLQs
No flow control
Business implications
The Consequences
Breaking Contracts
of
Event
broker
account
created
account
created
account
created
Customer
accounts
Finance
Customer
service
{
{
"metadata": {
...
},
"data": {
“account_number”: ”123-456”,
“firstname”: ”Joe”,
“lastname”: “Bloke",
“email": “jb@email.com",
“dob": “10121999"
}
}
}
{
{
"metadata": {
...
},
"data": {
“account_number”: ”123-456”,
“firstname”: ”Joe”,
“lastname”: “Bloke",
“email": “jb@email.com",
“dob": “12101999"
}
}
}
MM DD YYYY
DD MM YYYY
Implicit Change
Event
broker
account
created
account
created
account
created
Customer
accounts
Finance
Customer
service
Invisible consequences
{
{
"metadata": {
...
},
"data": {
“account_number”: ”123-456”,
“firstname”: ”Joe”,
“lastname”: “Blog",
“email": “jb@email.com",
“dob": “10121999"
}
}
}
{
{
"metadata": {
...
},
"data": {
“account_number”: ”123-456”,
“firstname”: ”Joe”,
“lastname”: “Blog",
“email": “jb@email.com",
“created_on": “15022025“,
“age": 25
}
}
}
Explicit Change
Event
broker
account
created
account
created
account
created
Customer
accounts
Finance
Customer
service
Visible consequences
Event
broker
account
created
account
created
account
created
Customer
accounts
Finance
Customer
service
Visible consequences
No event contract
No event schema
Low team morale
Loss of revenue
Distributed systems
Tracing Nightmare
and the
Eliminate the complexities of Event-Driven Architecture with Domain-Driven Design
In a distributed event-driven system,
do we even have two ends?
Checkout
Payments
Orders
Rewards
Shipping
Checkout
Payments
Orders
Rewards
Shipping
No trace identifiers
No structured logs
No clear boundaries
Lack of observability tools
Wasted engineering time
Event-driven
Architecture
is Complex!
Event-Driven Architecture
Distributed Systems
Complex
Hard
What is not complex in our lives?
Kitchen
notification
Food dispatch
Customer
notification
Checkout Route planner
Instore orders Online orders More!
Stock Phone orders
Loyalty
Menu
Driver tracking
Payments
Order
management
Personalization
3rd
Party
systems
Customer
service
Law of
Conservation
of
Complexity
Every application has an inherent
amount of complexity that cannot be
removed...
Instead, it must be dealt...
- Larry Tesler (Tesler’s Law)
Is there a way to untangle the
complexities of EDA?
The most fundamental problem in
computer science is problem
decomposition: how to take a complex
problem and divide it into pieces that
can be solved independently.
DDD-Assisted
Decomposition!
For every complex problem there is an answer that is
clear, simple, and wrong.
- H. L. Mencken
To prevent entangled architecture…
the system must be decomposed.
business untangled
Remember Conway’s Law?
Domain-Driven Design
It’s not a book.
It’s an industry!
Domain-Driven Design
DDD is a development approach to model
business domains to design and build robust
and evolvable software systems.
DDD is a collection of patterns, principles,
and practices, which can be applied to
software design to manage complexity.
Domain: Ecommerce
Domain: Insurance
Domain: Banking
A domain is an area of knowledge,
expertise, or activity a company or
business specializes in.
Domains
Domain: Ecommerce
Subdomain: Products Subdomain: Payments
Subdomain: Orders Subdomain: Loyalty
Within a domain, a subdomain is a
fine-grained area of business
activity.
There will be multiple subdomains
in a business.
Subdomains
Core subdomains
Generic subdomains
Supporting subdomains
Domain: Ecommerce
Subdomain: Products Subdomain: Payments
Subdomain: Orders Subdomain: Loyalty
Bounded contexts
Model boundaries
Evolve independently
Work together
BC Stock User
Payments
BC
Cart Shopper Rewards
BC
BC
Bounded context defines the
physical and ownership
boundaries.
But how do you find out the model boundaries?
EventStorming
EventStorming is a collaborative, non-technical workshop
that brings together business and technical people to
discuss, ideate, brainstorm, and model a business process
or analyze a problem domain.
Alberto Brandolini, the inventor of EventStorming,
drew his inspiration from Domain-Driven Design!
It’s developers’ (mis)understanding, not domain experts’
knowledge that gets released in production.
- Alberto Brandolini
Time
Domain
Event
Command
redeem reward
Aggregate
reward
Actor
customer reward_redeemed
emits
acts on
order update
order
Pivotal Event
Boundary
Big Picture EventStorming
(Domain-level EventStorming)
Design Level EventStorming
(Development-level EventStorming)
To control event intrusion…
the boundaries must be guarded.
To guard a system boundary, you require…
People: to own the product
Principles: to guide the team
Practices: to achieve fast flow
Provides a model for organizing
teams to enable autonomy and
fast flow of value.
Domain: Ecommerce
Subdomain: Products Subdomain: Payments
Subdomain: Orders Subdomain: Loyalty
Team Topologies
Enabling Teams
Platform Teams
Stream-aligned Teams
BC Stock User
Payments
BC
Cart Shopper Rewards
BC
BC
Complicated-Subsystem Teams
Dev
Prod
Test
Pre-
prod
Autonomous Team Payments - Bounded Context Operation
Owns Operates
To prevent breaking changes…
establish communication contracts.
API contracts – Synchronous Communication
Event Contracts – Asynchronous Communication
Event [Centric] Care!
An event is something already happened.
A change in the system’s state.
An immutable capsule of data about the change.
To provide context…
an event must belong somewhere.
A domain event describes something
significant that has happened in the
business domain.
Domain Events
account_created
order_placed
payment_authorized
Customers
Orders
Payments
{
“event": {
“domain”: ”customers”,
“subdomain”: ”accounts”,
“service”: ”registration”
“name”: ”account_created”
“account_number”: ”123-456”,
“firstname”: ”Joe”,
“lastname”: “Bloke",
“email": “jb@email.com",
“dob": “10121999"
}
}
A customer account was
created in the system!
To uniquely recognize an event…
an event must carry a version and an identity.
{
“event": {
“version”: 1.0,
“created_at”: ”2023-08-29T12:10:21Z”,
“domain”: ”customers”,
“subdomain”: ”accounts”,
“service”: ”registration”
“name”: ”account_created”
“account_number”: ”123-456”,
“firstname”: ”Joe”,
“lastname”: “Bloke",
“email": “jb@email.com",
“dob": “10121999"
}
}
The event now has a
version!
{
“event": {
“version”: 1.0,
“created_at”: ”2023-08-29T12:10:21Z”,
“event_id”: ”abc-xyz”,
“domain”: ”customers”,
“subdomain”: ”accounts”,
“service”: ”registration”
“name”: ”account_created”
“account_number”: ”123-456”,
“firstname”: ”Joe”,
“lastname”: “Bloke",
“email": “jb@email.com",
“dob": “10121999"
}
}
The event now has an
identity!
{
“event": {
“version”: 1.0,
“created_at”: ”2023-08-29T12:10:21Z”,
“event_id”: ”abc-xyz”,
“trace_id”: ”12c-x89”,
“domain”: ”customers”,
“subdomain”: ”accounts”,
“service”: ”registration”
“name”: ”account_created”
“account_number”: ”123-456”,
“firstname”: ”Joe”,
“lastname”: “Bloke",
“email": “jb@email.com",
“dob": “10121999"
}
}
The event now has a
trace identifier!
To handle duplicate events…
implement idempotency measures.
Customer
accounts
Finance
Customer
service
Event
broker
account
created
account
created
account
deleted
Event index
store
Is event in
the store?
Lookup
Log details
and ignore
YES
NO
Store the
event
Outbox pattern
Storage-first pattern
Devise a common event structure…
{
“event": {
“version”: 1.0,
“created_at”: ”2023-08-29T12:10:21Z”,
“event_id”: ”abc-xyz”,
“trace_id”: ”12c-x89”,
“domain”: ”customers”,
“subdomain”: ”accounts”,
“service”: ”registration”
“name”: ”account_created”
“account_number”: ”123-456”,
“firstname”: ”Joe”,
“lastname”: “Bloke",
“email": “jb@email.com",
“dob": “10121999"
}
}
Mixes functional and non-
functional data.
{
"detail": {
"metadata": {
// Details about the event
},
"data": {
// The instance data
}
}
Separate details into
metadata and data
sections
{
"detail": {
"metadata": {
“version”: ”1.2”,
“created_at”: ”2023-08-29T12:10:21Z”,
“event_id”: ”abc-xyz”,
“trace_id”: ”12c-x89”,
“domain”: “customers",
“subdomain”: “accounts",
“service": “registration",
“name”: ”account_created”
},
"data": {
}
}
}
metadata can also carry-
TTL
Tokens
Callback URL
etc.
{
"detail": {
"metadata": {
},
"data": {
“account_number”: ”123-456”,
“firstname”: ”Joe”,
“lastname”: “Bloke",
“email": “jb@email.com",
“dob": “10121999"
}
}
}
data section carries the
business data.
For clarity & to control event flow…
classify the events.
Common event classifications
Event categories Event types
Domain events
Operational events
Local or internal events
State transfer events
Cloud provider events
Common event classifications
Event categories Event types
Domain events
Operational events
Local or internal events
State transfer events
Cloud provider events
Command
Query
Request
Data
Status
Response
{
"detail": {
"metadata": {
“version”: ”1.2”,
“created_at”: ”2023-08-29T12:10:21Z”,
“event_id”: ”abc-xyz”,
“trace_id”: ”12c-x89”,
“domain”: “customers",
“subdomain”: “accounts",
“service": “registration",
“category": “domain_event",
“type": “data",
“name”: ”account_created”
},
"data": {
}
}
}
metadata carrying event
classification details
Event notification
Event-carried state transfer
Domain events
Short and brief info
URL to fetch details
Claim-Check Pattern
State change snapshots
Carries more details
Internal events
External events
Domain events
Internal to a context boundary
Versioning not a must
Shared between bounded contexts
Must be versioned
EDA Patterns
Service choreography is a coordinated sequence of
actions across multiple microservices to accomplish
a business process.
Orchestration is an automated and instructed
coordination of several services and resources by an
orchestrator to accomplish a business process.
To protect domain model from invading events…
build anti-corruption layers (ACL).
Collaboration type
Customer-supplier Separate ways
Cooperation
Partnership
Shared kernel
Conformist
Anticorruption layer
Open-host service
Patterns
ACL is an integration pattern between two bounded
contexts and acts as a translation layer to map data
between two systems to protect their data models.
ACL is an integration pattern between two bounded
contexts and acts as a translation layer to map data
between two systems to protect their data models.
Prevent. Protect.
Upstream
Supplier
Bounded Context
Downstream
Consumer
Bounded Context
Data
ACL
If a bounded context conforms to a mess,
it risks becoming a mess itself.
- Learning Domain-Driven Design
Customers
Rewards
3rd
Party SaaS
Payments
OHS
ACL
ACL
ACL Event
Broker
Dedicated ACL
for the SaaS
ACL to protect Orders BC from
Payments BC
Upstream: Payments
Downstream: Orders
Async Webhook
Domain events emitted as
CloudEvents for external
consumers
Upstream: Payments
Downstream: Orders
Sync API call
Orders BC conforms to Payments BC
Orders
Bounded Context
To regulate event exodus and invasion…
employ a Gatekeeper event bus.
A gatekeeper event bus is an event broker that acts
as the guarded event gate of a context boundary.
Every API has a contract, protocol,
auth, quota, etc.
But how do you apply these to
domain events as they flow into
and out of your bounded context?
A gatekeeper event bus is an event broker that acts
as the guarded event gate of a context boundary.
Guard. Control.
Bounded Context Bounded Context
Enterprise
Event Broker
User payments bounded context
Authorization
Refunds
Capture
Service status
Pay by link
Payment
authorized
Payment
declined
Payment
captured
Payment
refunded
Link emailed
Link clicked
Healthy
Unhealthy
Finance domain
Checkout bounded context
Third-party
SaaS
User payments bounded context
Authorization
Refunds
Capture
Service status
Pay by link
Payment
authorized
Payment
declined
Payment
captured
Payment
refunded
Link emailed
Link clicked
Healthy
Unhealthy
Finance domain
Checkout bounded context
Third-party
SaaS
Domain events
Cross-account
event sharing
HTTP target
User payments bounded context
Authorization
Refunds
Capture
Service status
Pay by link
Payment
authorized
Payment
declined
Payment
captured
Payment
refunded
Link emailed
Link clicked
Healthy
Unhealthy
Finance domain
Checkout bounded context
Third-party
SaaS
Domain events
Cross account
event sharing
HTTP target
User payments bounded context
Authorization
Refunds
Capture
Service status
Pay by link
Payment
authorized
Payment
declined
Payment
captured
Payment
refunded
Link emailed
Link clicked
Healthy
Unhealthy
Finance domain
Checkout bounded context
Third-party
SaaS
Domain events
Cross-account
event sharing
HTTP target
Gatekeeper
event bus
To not loose events and the history…
practise event sourcing.
Event Sourcing is a way of capturing and persisting the
changes happening in a system as a sequence of events.
PK SK EventID FirstName LastName Address Activity
100-255-8730 2023-04-
05T08:47:
30.718Z
Hru343t5-jvc Joe Bloke 99, Edge Lane,
London
UPDATED
100-735-6729 2023-01-
15T02:37:
20.545Z
lgojk834sd3-
r454
Biz Raj 12A, Top Street,
Mumbai
DELETED
100-255-8730 2022-06-
15T18:57:
43.148Z
Zxjfie294hfdkd9e
7n
Joe Bloke 15, Nice Road,
Cardiff
CREATED
100-735-6729 2009-11-
29T20:49:
40.003Z
skdj834sd3-j3ns Biz Raj 12A, Top Street,
Mumbai
CREATED
Bounded Context Level Domain Level Centralized
Audit
Service
User Payments
Event
Store
Event Broker
Event
Sourcing
Service
Bounded Contexts
Event
Store
Event
Broker
Cloud Region 3
Account X
Event
Sourcing
Service
Cloud Region 1
Account A
Account B
Cloud Region 2
Account C
Cloud Region 4
Account D
Key Takeaways
View inter-bounded context communications as contractual agreements.
Establish event contracts at the same level as API contracts.
EDA isn’t all perfect, but when done properly, it can serve as a catalyst
for engineering growth.
Business clarity promotes engineering purity. Decomposing the business
domain is the first step towards EDA.
Modularity is essential for an evolvable EDA. It enables loose coupling and
encourages team autonomy.
Employ proven industry patterns and practices to safeguard domain
models and prevent unauthorized event intrusions.
Distributed systems are essential for meeting the needs of modern
consumers, and EDA plays a crucial role in achieving this.
By applying systems thinking and Domain-Driven Design, we can
navigate the complexities of EDA through ownership boundaries,
communication contracts, collaborative efforts, along with established
engineering principles and patterns.
The Saga Continues…!
sheen-brisals
sheenbrisals
sbrisals.medium.com
#TheServerlessBook #TheSpeakerBook
Architect at Sky
AWS Serverless Hero
Team Topologies Advocate
Sheen Brisals
Thank
You!
leanpub.com/TheSpeakerBook

More Related Content

Similar to Eliminate the complexities of Event-Driven Architecture with Domain-Driven Design (20)

Event-driven architecture
Event-driven architecture
Andrew Easter
 
Guido schmutz-jax2011-event-driven soa
Guido schmutz-jax2011-event-driven soa
Guido Schmutz
 
Maximizing the Value of Event-Driven Architecture.pdf
Maximizing the Value of Event-Driven Architecture.pdf
apidays
 
The Significant role of event driven apps in software development
The Significant role of event driven apps in software development
Shelly Megan
 
Event driven architecture
Event driven architecture
Shadrach Jabonir
 
Event driven architecture
Event driven architecture
Rabbani Mohideen
 
1. Why Event-Driven Microservices _ Building Event-Driven Microservices.pdf
1. Why Event-Driven Microservices _ Building Event-Driven Microservices.pdf
RajeevKumarSingh87
 
Architecting the Future - Event-Driven Paradigms in Software Development.pdf
Architecting the Future - Event-Driven Paradigms in Software Development.pdf
SeasiaInfotech2
 
Event Driven Architecture
Event Driven Architecture
Chris Patterson
 
apidays LIVE Paris 2021 - Event driven design and serverless by Omid Eidivand...
apidays LIVE Paris 2021 - Event driven design and serverless by Omid Eidivand...
apidays
 
Correlation Architecture
Correlation Architecture
sboray
 
[WSO2Con Asia 2018] Building Reactive Applications Using Event-driven Archite...
[WSO2Con Asia 2018] Building Reactive Applications Using Event-driven Archite...
WSO2
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2
 
Microservices - Event-driven & the hidden landmines
Microservices - Event-driven & the hidden landmines
Vijay Redkar
 
Events & Microservices
Events & Microservices
Yamen Sader
 
Udi Dahan: Event Sourcing Keynote @ DDD EU
Udi Dahan: Event Sourcing Keynote @ DDD EU
udidahan
 
apidays LIVE New York 2021 - Event driven design and serverless by Omid Eidiv...
apidays LIVE New York 2021 - Event driven design and serverless by Omid Eidiv...
apidays
 
Enabling Event Driven Architecture with PubSub+
Enabling Event Driven Architecture with PubSub+
Himanshu Gupta
 
Event Driven Architectures
Event Driven Architectures
Avinash Ramineni
 
Event Driven Architecture
Event Driven Architecture
Chris Patterson
 
Event-driven architecture
Event-driven architecture
Andrew Easter
 
Guido schmutz-jax2011-event-driven soa
Guido schmutz-jax2011-event-driven soa
Guido Schmutz
 
Maximizing the Value of Event-Driven Architecture.pdf
Maximizing the Value of Event-Driven Architecture.pdf
apidays
 
The Significant role of event driven apps in software development
The Significant role of event driven apps in software development
Shelly Megan
 
1. Why Event-Driven Microservices _ Building Event-Driven Microservices.pdf
1. Why Event-Driven Microservices _ Building Event-Driven Microservices.pdf
RajeevKumarSingh87
 
Architecting the Future - Event-Driven Paradigms in Software Development.pdf
Architecting the Future - Event-Driven Paradigms in Software Development.pdf
SeasiaInfotech2
 
Event Driven Architecture
Event Driven Architecture
Chris Patterson
 
apidays LIVE Paris 2021 - Event driven design and serverless by Omid Eidivand...
apidays LIVE Paris 2021 - Event driven design and serverless by Omid Eidivand...
apidays
 
Correlation Architecture
Correlation Architecture
sboray
 
[WSO2Con Asia 2018] Building Reactive Applications Using Event-driven Archite...
[WSO2Con Asia 2018] Building Reactive Applications Using Event-driven Archite...
WSO2
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2
 
Microservices - Event-driven & the hidden landmines
Microservices - Event-driven & the hidden landmines
Vijay Redkar
 
Events & Microservices
Events & Microservices
Yamen Sader
 
Udi Dahan: Event Sourcing Keynote @ DDD EU
Udi Dahan: Event Sourcing Keynote @ DDD EU
udidahan
 
apidays LIVE New York 2021 - Event driven design and serverless by Omid Eidiv...
apidays LIVE New York 2021 - Event driven design and serverless by Omid Eidiv...
apidays
 
Enabling Event Driven Architecture with PubSub+
Enabling Event Driven Architecture with PubSub+
Himanshu Gupta
 
Event Driven Architectures
Event Driven Architectures
Avinash Ramineni
 
Event Driven Architecture
Event Driven Architecture
Chris Patterson
 

More from SheenBrisals (17)

Patterns and practices for developing enterprise-scale applications with serv...
Patterns and practices for developing enterprise-scale applications with serv...
SheenBrisals
 
Is there a place for QA in autonomous fast flow teams?
Is there a place for QA in autonomous fast flow teams?
SheenBrisals
 
Patterns and practices for an enterprise-scale adoption of serverless!
Patterns and practices for an enterprise-scale adoption of serverless!
SheenBrisals
 
How to study, think, work, and live as an Engineer!
How to study, think, work, and live as an Engineer!
SheenBrisals
 
Advanced Event-Driven Patterns - AWS Community Day Dublin
Advanced Event-Driven Patterns - AWS Community Day Dublin
SheenBrisals
 
Enterprise Serverless Adoption. An Experience Report
Enterprise Serverless Adoption. An Experience Report
SheenBrisals
 
Sustainability In Serverless
Sustainability In Serverless
SheenBrisals
 
How to Grow a Serverless Team in an Enterprise
How to Grow a Serverless Team in an Enterprise
SheenBrisals
 
The Road To Event-Driven Architecture
The Road To Event-Driven Architecture
SheenBrisals
 
Enterprise Serverless Adoption. An Experience Report
Enterprise Serverless Adoption. An Experience Report
SheenBrisals
 
Shillings in Serverless
Shillings in Serverless
SheenBrisals
 
To Serverless And Beyond!
To Serverless And Beyond!
SheenBrisals
 
How LEGO.com Accelerates With Serverless
How LEGO.com Accelerates With Serverless
SheenBrisals
 
Sloppy Little Serverless Stories
Sloppy Little Serverless Stories
SheenBrisals
 
How to Grow a Serverless Team
How to Grow a Serverless Team
SheenBrisals
 
Design and Develop Serverless Applications as Set-Pieces
Design and Develop Serverless Applications as Set-Pieces
SheenBrisals
 
Serverless Microservices Communication with Amazon EventBridge
Serverless Microservices Communication with Amazon EventBridge
SheenBrisals
 
Patterns and practices for developing enterprise-scale applications with serv...
Patterns and practices for developing enterprise-scale applications with serv...
SheenBrisals
 
Is there a place for QA in autonomous fast flow teams?
Is there a place for QA in autonomous fast flow teams?
SheenBrisals
 
Patterns and practices for an enterprise-scale adoption of serverless!
Patterns and practices for an enterprise-scale adoption of serverless!
SheenBrisals
 
How to study, think, work, and live as an Engineer!
How to study, think, work, and live as an Engineer!
SheenBrisals
 
Advanced Event-Driven Patterns - AWS Community Day Dublin
Advanced Event-Driven Patterns - AWS Community Day Dublin
SheenBrisals
 
Enterprise Serverless Adoption. An Experience Report
Enterprise Serverless Adoption. An Experience Report
SheenBrisals
 
Sustainability In Serverless
Sustainability In Serverless
SheenBrisals
 
How to Grow a Serverless Team in an Enterprise
How to Grow a Serverless Team in an Enterprise
SheenBrisals
 
The Road To Event-Driven Architecture
The Road To Event-Driven Architecture
SheenBrisals
 
Enterprise Serverless Adoption. An Experience Report
Enterprise Serverless Adoption. An Experience Report
SheenBrisals
 
Shillings in Serverless
Shillings in Serverless
SheenBrisals
 
To Serverless And Beyond!
To Serverless And Beyond!
SheenBrisals
 
How LEGO.com Accelerates With Serverless
How LEGO.com Accelerates With Serverless
SheenBrisals
 
Sloppy Little Serverless Stories
Sloppy Little Serverless Stories
SheenBrisals
 
How to Grow a Serverless Team
How to Grow a Serverless Team
SheenBrisals
 
Design and Develop Serverless Applications as Set-Pieces
Design and Develop Serverless Applications as Set-Pieces
SheenBrisals
 
Serverless Microservices Communication with Amazon EventBridge
Serverless Microservices Communication with Amazon EventBridge
SheenBrisals
 
Ad

Recently uploaded (20)

Agentic Techniques in Retrieval-Augmented Generation with Azure AI Search
Agentic Techniques in Retrieval-Augmented Generation with Azure AI Search
Maxim Salnikov
 
Making significant Software Architecture decisions
Making significant Software Architecture decisions
Bert Jan Schrijver
 
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
Maharshi Mallela
 
dp-700 exam questions sample docume .pdf
dp-700 exam questions sample docume .pdf
pravkumarbiz
 
Software Engineering Process, Notation & Tools Introduction - Part 4
Software Engineering Process, Notation & Tools Introduction - Part 4
Gaurav Sharma
 
Porting Qt 5 QML Modules to Qt 6 Webinar
Porting Qt 5 QML Modules to Qt 6 Webinar
ICS
 
AI-Powered Compliance Solutions for Global Regulations | Certivo
AI-Powered Compliance Solutions for Global Regulations | Certivo
certivoai
 
Neuralink Templateeeeeeeeeeeeeeeeeeeeeeeeee
Neuralink Templateeeeeeeeeeeeeeeeeeeeeeeeee
alexandernoetzold
 
Reimagining Software Development and DevOps with Agentic AI
Reimagining Software Development and DevOps with Agentic AI
Maxim Salnikov
 
Transmission Media. (Computer Networks)
Transmission Media. (Computer Networks)
S Pranav (Deepu)
 
Meet You in the Middle: 1000x Performance for Parquet Queries on PB-Scale Dat...
Meet You in the Middle: 1000x Performance for Parquet Queries on PB-Scale Dat...
Alluxio, Inc.
 
Automated Migration of ESRI Geodatabases Using XML Control Files and FME
Automated Migration of ESRI Geodatabases Using XML Control Files and FME
Safe Software
 
How the US Navy Approaches DevSecOps with Raise 2.0
How the US Navy Approaches DevSecOps with Raise 2.0
Anchore
 
Shell Skill Tree - LabEx Certification (LabEx)
Shell Skill Tree - LabEx Certification (LabEx)
VICTOR MAESTRE RAMIREZ
 
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
BradBedford3
 
GDG Douglas - Google AI Agents: Your Next Intern?
GDG Douglas - Google AI Agents: Your Next Intern?
felipeceotto
 
Software Engineering Process, Notation & Tools Introduction - Part 3
Software Engineering Process, Notation & Tools Introduction - Part 3
Gaurav Sharma
 
Code and No-Code Journeys: The Coverage Overlook
Code and No-Code Journeys: The Coverage Overlook
Applitools
 
Advanced Token Development - Decentralized Innovation
Advanced Token Development - Decentralized Innovation
arohisinghas720
 
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
WSO2
 
Agentic Techniques in Retrieval-Augmented Generation with Azure AI Search
Agentic Techniques in Retrieval-Augmented Generation with Azure AI Search
Maxim Salnikov
 
Making significant Software Architecture decisions
Making significant Software Architecture decisions
Bert Jan Schrijver
 
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
Maharshi Mallela
 
dp-700 exam questions sample docume .pdf
dp-700 exam questions sample docume .pdf
pravkumarbiz
 
Software Engineering Process, Notation & Tools Introduction - Part 4
Software Engineering Process, Notation & Tools Introduction - Part 4
Gaurav Sharma
 
Porting Qt 5 QML Modules to Qt 6 Webinar
Porting Qt 5 QML Modules to Qt 6 Webinar
ICS
 
AI-Powered Compliance Solutions for Global Regulations | Certivo
AI-Powered Compliance Solutions for Global Regulations | Certivo
certivoai
 
Neuralink Templateeeeeeeeeeeeeeeeeeeeeeeeee
Neuralink Templateeeeeeeeeeeeeeeeeeeeeeeeee
alexandernoetzold
 
Reimagining Software Development and DevOps with Agentic AI
Reimagining Software Development and DevOps with Agentic AI
Maxim Salnikov
 
Transmission Media. (Computer Networks)
Transmission Media. (Computer Networks)
S Pranav (Deepu)
 
Meet You in the Middle: 1000x Performance for Parquet Queries on PB-Scale Dat...
Meet You in the Middle: 1000x Performance for Parquet Queries on PB-Scale Dat...
Alluxio, Inc.
 
Automated Migration of ESRI Geodatabases Using XML Control Files and FME
Automated Migration of ESRI Geodatabases Using XML Control Files and FME
Safe Software
 
How the US Navy Approaches DevSecOps with Raise 2.0
How the US Navy Approaches DevSecOps with Raise 2.0
Anchore
 
Shell Skill Tree - LabEx Certification (LabEx)
Shell Skill Tree - LabEx Certification (LabEx)
VICTOR MAESTRE RAMIREZ
 
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
BradBedford3
 
GDG Douglas - Google AI Agents: Your Next Intern?
GDG Douglas - Google AI Agents: Your Next Intern?
felipeceotto
 
Software Engineering Process, Notation & Tools Introduction - Part 3
Software Engineering Process, Notation & Tools Introduction - Part 3
Gaurav Sharma
 
Code and No-Code Journeys: The Coverage Overlook
Code and No-Code Journeys: The Coverage Overlook
Applitools
 
Advanced Token Development - Decentralized Innovation
Advanced Token Development - Decentralized Innovation
arohisinghas720
 
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
WSO2
 
Ad

Eliminate the complexities of Event-Driven Architecture with Domain-Driven Design