Preparing For a Future
Microservices Journey
Using Wardley Maps
Susanne Kaiser
Independent Tech Consultant
@suksr
DDD &
Source: https://www.marketresearchfuture.com/reports/microservices-architecture-market-3149
Microservices Architecture Market
Key Trends
Loose Coupling
Deployment
Domain Driven Design
2016 2017 2018 2019 2020 2021 2022 2023
USD ~33 Billion
Market
Size
(USD
Billion)
CAGR ~17%
Source: https://www.infoq.com/articles/architecture-trends-2019/
Source: https://www.infoq.com/articles/architecture-trends-2019/
Source: https://en.wikipedia.org/wiki/Hype_cycle#/media/File:Gartner_Hype_Cycle.svg
Microservices ?
Gartner Hype Cycle
@suksr
@suksr
High cohesion
within a service
Loose coupling between services
@suksr
High cohesion
within a service
Loose coupling between services
@suksr
Data Store
Data Store
@suksr
Config./Setup
Maintenance
Integration
Hardware
O/S
Virtualization
Container
Runtime
@suksr
API
Hardware
O/S
Virtualization
Container
Runtime
@suksr
API
Hardware
O/S
Virtualization
Container
Runtime
@suksr
API
API
Integration
API
Hardware
O/S
Virtualization
Container
Runtime
@suksr
API
API
Security
API
API
API
Service Discovery
1. Register
3. Connect
2. Discover
Hardware
O/S
Virtualization
Container
Runtime
@suksr
API
API
API
Service Discovery
Load-Balancer
Hardware
O/S
Virtualization
Container
Runtime
@suksr
API
API
API
Service Discovery
API
Timeout-Handling
Hardware
O/S
Virtualization
Container
Runtime
@suksr
Load-Balancer
API
API
API
Service Discovery
API
Timeout-Handling
Retries
Hardware
O/S
Virtualization
Container
Runtime
@suksr
Load-Balancer
API
API
API
Service Discovery
API
Timeout-Handling
Retries
Idempotency
Hardware
O/S
Virtualization
Container
Runtime
@suksr
Load-Balancer
API
API
API
Service Discovery
API
Timeout-Handling
Retries
Bulk-
heads
Hardware
O/S
Virtualization
Container
Runtime
@suksr
Load-Balancer
Idempotency
API
API
API
Service Discovery
API
Timeout-Handling
Retries
Bulk-
Heads
Circuit Breaker
Hardware
O/S
Virtualization
Container
Runtime
@suksr
Load-Balancer
Idempotency
API
API
API
Service Discovery
API
Timeout-Handling
Retries
Bulk-
heads
Circuit Breaker
Message Broker
Hardware
O/S
Virtualization
Container
Runtime
@suksr
Load-Balancer
Idempotency
API
API
API
Service Discovery
Load-Balancer
API
Timeout-Handling
Retries
Bulk-
heads Circuit Breaker
Message Broker
API-Gateway
Hardware
O/S
Virtualization
Container
Runtime
@suksr
Idempotency
API
API
API
Service Discovery
API
Timeout-Handling
Retries
Bulk-
heads
Message Broker
API-Gateway
Circuit Breaker
Config-Mngmt.
Hardware
O/S
Virtualization
Container
Runtime
@suksr
Load-Balancer
Idempotency
API
API
API
Service Discovery
API
Timeout-Handling
Retries
Bulk-
heads
Message Broker
API-Gateway
Circuit Breaker
Config-Mngmt.
Monitoring
Log Aggreation
Metrics
Distributed
Tracing
Health Checks
Hardware
O/S
Virtualization
Container
Runtime
@suksr
Load-Balancer
Idempotency
API
API
API
Service Discovery
API
Timeout-Handling
Retries
Bulk-
heads
Message Broker
API-Gateway
Circuit Breaker
Config-Mngmt.
Monitoring
Log Aggreation
Metrics
Distributed
Tracing
Health Checks
SCM
Checkout Test
Build
CI/CD Pipeline
Deploy
Hardware
O/S
Virtualization
Container
Runtime
@suksr
Load-Balancer
Idempotency
Recovery
API
API
API
Service Discovery
API
Timeout-Handling
Retries
Bulk-
heads
Message Broker
API-Gateway
Circuit Breaker
Config-Mngmt.
Monitoring
Log Aggreation
Metrics
Distributed
Tracing
Health Checks
SCM
Checkout Test
Build
CI/CD Pipeline
Deploy
Hardware
O/S
Virtualization
Container
Runtime
Backup
@suksr
Load-Balancer
Scaling
Idempotency
µService
@suksr
Hardware
Data Store
API
API-Gateway Service Discovery Load-Balancer
Message Broker
Timeout-Handling Retries Idempotency Bulkheads Circuit Breaker
Config-Mngmt.
Monitoring Log Aggreation Metrics Distributed
Tracing
Health Checks
SCM
O/S
Virtualization Container Runtime
Checkout Test
Build
CI/CD Pipeline
Deploy
µService
Backup Recovery
@suksr
Scaling
Maintenance
Integration
Security
Domain Driven Design (DDD) – Terminology
Strategic Design
Tactical Design
Bounded Context
Ubiquitous Language
Core Subdomain
Supporting Subdomain
Generic Subdomain
Problem Space
Solution Space
Context Maps
Anti-Corruption Layer
Shared Kernel
Open Host Service
Separate Ways
Partnership
Customer-Supplier
Conformist
Domain Model
Entity
Value Object
Aggregate
Repository
Factory
Application Service
Domain Service
Domain Event
@suksr
Hardware Data Store
API
API-Gateway Service Discovery Load-Balancer
Message Broker
Timeout-Handling Retries Idempotency Bulkheads Circuit Breaker
Config-Mngmt.
Monitoring Log Aggreation Metrics Distributed
Tracing
Health Checks
SCM
O/S
Virtualization Container Runtime
Checkout Test
Build
CI/CD Pipeline
Deploy
µService
Backup Recovery
Scaling
Maintenance
Integration
Security
Strategic Design
Tactical Design
Problem Space
Solution Space
Bounded Context
Ubiquitous Language
Core Subdomain
Supporting
Subdomain
Generic Subdomain
Context Maps
Anti-Corruption Layer
Shared Kernel
Open Host Service
Separate Ways
Partnership
Customer-Supplier
Conformist
Domain Model
Entity
Value Object
Aggregate
Repository
Factory
Application Service
Domain Service
Domain Event
@suksr
Value
Chain
Invisible
Visible
Evolution
Visualisation of a
value chain’s
evolution
Genesis Custom-Built Product (+rental) Commodity (+utility)
Position
Movement
Wardley Maps BY SIMON WARDLEY
Uncharted Industrialised
@suksr
Wardley Maps – VALUE CHAIN
Who are your users?
Value
Chain
Invisible
Visible
@suksr
Wardley Maps – VALUE CHAIN
Who are your users?
What are your users’ needs?
Value
Chain
Invisible
Visible
@suksr
Wardley Maps – VALUE CHAIN
Who are your users?
What are your users’ needs?
What are the components/activities to fulfill
your users’ needs incl. dependencies?
Value
Chain
Invisible
Visible
Position
@suksr
Wardley Maps – LANDSCAPE
Value
Chain
Invisible
Visible
Evolution
Components along
evolution axes
Genesis Custom-Built Product (+rental) Commodity (+utility)
Position
Movement
@suksr
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Everything evolves
Past Current Future
Supply Competition
Demand Competition
Uncharted Industrialised
Wardley Maps – PATTERNS
Movement
@suksr
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Everything evolves
Past Current Future
Continuous adaption
Wardley Maps – PATTERNS
Movement
Evolution
@suksr
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Past Current Future
Characteristics change
Uncharted
Undefined market
Uncertain
Unpredictable
Rare
Poorly understood
Forming market
Learning on use
Increasing understanding
Slowly increasing
consumption
Rapid increases in
learning
Growing market
Learning on operation
Increasing education
Rapidly increasing
consumption
Rapid increase in use
Mature market
Known / accepted
Stable
Widespread and stabilising
Commonly understood
(in term of use)
Industrialised
Wardley Maps – PATTERNS
Movement
@suksr
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Efficiency enables innovation
Uncharted Industrialised
Wardley Maps – PATTERNS
Movement
@suksr
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Efficiency enables innovation
Uncharted Industrialised
Wardley Maps – PATTERNS
Movement
@suksr
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Efficiency enables innovation
Uncharted Industrialised
Wardley Maps – PATTERNS
Movement
@suksr
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Efficiency enables innovation
Uncharted Industrialised
Wardley Maps – PATTERNS
Movement
@suksr
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Wardley Maps – PRINCIPLES
Use appropriate methods
per evolution stage
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
@suksr
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Use appropriate methods
per evolution stage
Wardley Maps – PRINCIPLES
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
@suksr
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Use appropriate methods
per evolution stage
Wardley Maps – PRINCIPLES
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
@suksr
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Know your users &
focus on user needs
Wardley Maps – PRINCIPLES
Build in-house / Agile
Use/buy off-the-shelf product / Lean
Outsource to utility suppliers / Six Sigma
@suksr
Domain Driven Design
Ubiquitous Language
Domain Knowledge
Understanding the problem domain first
before solving it
Problem Domain
Domain
Experts
Development
Teams
Collaboration
@suksr
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
DDD & Wardley Maps Problem Domain
Strategic Design
DDD Patterns &
Practices
Tactical Design
@suksr
Strategic
Design
Tactical
Design
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
DDD & Wardley Maps Problem Domain
Strategic Design
DDD Patterns &
Practices
Tactical Design
Analysing the
business
domain
Discovering
Subdomains
Problem Space
@suksr
Problem
Space
Strategic
Design
Tactical
Design
Analyse
&
Discover
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
DDD & Wardley Maps Problem Domain
Strategic Design
DDD Patterns &
Practices
Tactical Design
Analysing the
business
domain
Discovering
Subdomains
Problem Space
Decomposing
into modular
components
(Bounded
Contexts (BC))
Mapping
interaction
patterns
between BC
(Context Maps)
Solution Space
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
Design
Analyse
&
Discover
Decompose
&
Map
High-Level
Design Decisions
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
DDD & Wardley Maps Problem Domain
Strategic Design
DDD Patterns &
Practices
Tactical Design
Architecting a solution
fitting the problem
domain as closely as
possible
Provides
building blocks
to implement
domain model
Analysing the
business
domain
Discovering
Subdomains
Problem Space
Decomposing
into modular
components
(Bounded
Contexts (BC)
Mapping
interaction
patterns
between BC
(Context Maps)
Solution Space
@suksr
Solution Space
Problem
Space
Solution
Space
Strategic
Design
Tactical
Design
Analyse
&
Discover
Architect
&
Implement
High-Level
Design Decisions
Low-Level
Design Decisions
Decompose
&
Map
Analyse
&
Discover
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Distilling the problem
domain & discovering the
core subdomain
DDD & Wardley Maps
Core
Subdomain
Problem Domain
STRATEGIC DESIGN (PROBLEM SPACE)
Supporting
Subdomain
Generic
Subdomain
@suksr
Problem
Space
Strategic
Design
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Distilling the problem
domain & discovering the
core subdomain
DDD & Wardley Maps
Core
Subdomain
Problem Domain
Competitive advantage
Complex
Changes often
Build in-house
STRATEGIC DESIGN (PROBLEM SPACE)
Supporting
Subdomain
Generic
Subdomain
@suksr
Analyse
&
Discover
Problem
Space
Strategic
Design
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Distilling the problem
domain & discovering the
core subdomain
DDD & Wardley Maps
Core
Subdomain
Problem Domain
Competitive advantage
Complex
Changes often
Build in-house
No competitive advantage
Quite simple
Does not change often
Prefer to buy/use off-the-shelf
STRATEGIC DESIGN (PROBLEM SPACE)
Supporting
Subdomain
Generic
Subdomain
@suksr
Analyse
&
Discover
Problem
Space
Strategic
Design
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Distilling the problem
domain & discovering the
core subdomain
DDD & Wardley Maps
Core
Subdomain
Problem Domain
Competitive advantage
Complex
Changes often
Build in-house
No competitive advantage
Quite simple
Does not change often
Prefer to buy/use off-the-shelf
No competitive advantage
Generally complex
Does not change often
Buy/use off-the-shelf / outsource
STRATEGIC DESIGN (PROBLEM SPACE)
Supporting
Subdomain
Generic
Subdomain
@suksr
Analyse
&
Discover
Problem
Space
Strategic
Design
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Decompose
&
Map
Analyse
&
Discover
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Model Driven Design
DDD & Wardley Maps
STRATEGIC DESIGN (SOLUTION SPACE)
Development
Teams
Domain
Experts
Ubiquitous
Language
Analysis
Model
Code
Model
Domain Model
Core
Subdomain
Supporting
Subdomain
Generic
Subdomain
Problem Domain
abstracted by
@suksr
Problem
Space
Solution
Space
Strategic
Design
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Bounded Contexts
DDD & Wardley Maps
STRATEGIC DESIGN (SOLUTION SPACE)
Core
Subdomain
Supporting
Subdomain
Generic
Subdomain
Problem Domain
Linguistic/semantic
boundary
Ownership boundary
Model integrity boundary
Physical boundary
Different architectural
patterns per context
possible
@suksr
Microservice candidates
Decompose
&
Map
Analyse
&
Discover
Problem
Space
Strategic
Design
Solution
Space
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Submissions
Manage
Event
Organiser
Build & Publish
Schedule
Communicate
w/ Speakers
Signup/Signin
Know your users &
focus on user needs
Submit
Session
DDD & Wardley Maps
STRATEGIC DESIGN (PROBLEM SPACE)
Speaker
@suksr
Analyse
&
Discover
Problem
Space
Strategic
Design
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Submissions
Manage
Event
Organiser
Build & Publish
Schedule
Communicate
w/ Speakers
Signup/Signin
Speaker
Submit
Session
DDD & Wardley Maps
STRATEGIC DESIGN (PROBLEM SPACE) Discovering
subdomains
Supporting Generic
Core
@suksr
Analyse
&
Discover
Problem
Space
Strategic
Design
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Submissions
Manage
Event
Organiser
Build & Publish
Schedule
Communicate
w/ Speakers
Signup/Signin
Speaker
Submit
Session
DDD & Wardley Maps
STRATEGIC DESIGN (SOLUTION SPACE)
Supporting Generic
Core
Event Evaluation Account
Schedule Message
Session
Domain Models
@suksr
Decompose
&
Map
Analyse
&
Discover
Problem
Space
Solution
Space
Strategic
Design
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Submissions
Manage
Event
Organiser
Build & Publish
Schedule
Communicate
w/ Speakers
Signup/Signin
Speaker
Submit
Session
DDD & Wardley Maps
Supporting Generic
Core
Event Evaluation Account
Schedule Message
Speaker
Session
CfP
STRATEGIC DESIGN (SOLUTION SPACE)
Domain Models
@suksr
Decompose
&
Map
Analyse
&
Discover
Problem
Space
Strategic
Design
Solution
Space
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Submissions
Manage
Event
Organiser
Build & Publish
Schedule
Communicate
w/ Speakers
Signup/Signin
Speaker
Submit
Session
DDD & Wardley Maps
Supporting Generic
Core
Event Evaluation Account
Schedule Message
Speaker Profile
Submitted
Session
CfP
Settings
Recipient
Open CfP Evaluated
Session
Scheduled
Session
STRATEGIC DESIGN (SOLUTION SPACE)
Domain Models
@suksr
Decompose
&
Map
Analyse
&
Discover
Problem
Space
Strategic
Design
Solution
Space
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Submissions
Manage
Event
Organiser
Build & Publish
Schedule
Communicate
w/ Speakers
Signup/Signin
Speaker
Submit
Session
DDD & Wardley Maps
Supporting Generic
Core
STRATEGIC DESIGN (SOLUTION SPACE)
Bounded Contexts
Linguistic/semantic
boundary
Model integrity boundary
Event Evaluation Account
Schedule Message
Submitted
Session
CfP
Settings
Recipient
Open CfP Evaluated
Session
Scheduled
Session
Speaker Profile Session
Evaluation
Submission
Handling
Event
Mngmnt.
Schedule
Mngmnt.
Messaging
Account
Handling
@suksr
Decompose
&
Map
Analyse
&
Discover
Problem
Space
Strategic
Design
Solution
Space
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Submissions
Manage
Event
Organiser
Build & Publish
Schedule
Communicate
w/ Speakers
Signup/Signin
Speaker
Submit
Session
DDD & Wardley Maps
Supporting Generic
Core
STRATEGIC DESIGN (SOLUTION SPACE)
Submission
Handling
Event
Mngmnt.
Session
Evaluation
Messaging Account
Handling
Schedule
Mngmnt.
Bounded Contexts
Ownership boundary
Linguistic/semantic
boundary
Model integrity boundary
@suksr
Decompose
&
Map
Analyse
&
Discover
Problem
Space
Strategic
Design
Solution
Space
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Submissions
Manage
Event
Organiser
Build & Publish
Schedule
Communicate
w/ Speakers
Signup/Signin
Speaker
Submit
Session
DDD & Wardley Maps
Supporting Generic
Core
STRATEGIC DESIGN (SOLUTION SPACE)
Submission
Handling
Event
Mngmnt.
Session
Evaluation
Messaging Account
Handling
Schedule
Mngmnt.
Bounded Contexts
Ownership boundary
Linguistic/semantic
boundary
Model integrity boundary
Physical boundary
SCM
Data store
CI/CD
Artefact
@suksr
Decompose
&
Map
Analyse
&
Discover
Problem
Space
Strategic
Design
Solution
Space
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Submissions
Manage
Event
Organiser
Build & Publish
Schedule
Communicate
w/ Speakers
Signup/Signin
Speaker
Submit
Session
DDD & Wardley Maps
Supporting Generic
Core
TACTICAL DESIGN
Submission
Handling
Event
Mngmnt.
Session
Evaluation
Messaging Account
Handling
Schedule
Mngmnt.
Architectural
Patterns
Architectural patterns can
differ per Bounded Context,
e.g.
Layered
Architecture
Hexagonal
Architecture
CQRS
@suksr
Decompose
&
Map
Analyse
&
Discover
Problem
Space
Solution
Space
Strategic
Design
Tactical
Design
Architect
&
Implement
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Submissions
Manage
Event
Organiser
Build & Publish
Schedule
Communicate
w/ Speakers
Signup/Signin
Speaker
Submit
Session
DDD & Wardley Maps
Supporting Generic
Core
TACTICAL DESIGN
Submission
Handling
Event
Mngmnt.
Session
Evaluation
Messaging Account
Handling
Schedule
Mngmnt.
Business Logic
Implementation Patterns
Business logic implementation
patterns can differ per
Bounded Context, e.g.
Domain
Model
Active
Record
Transaction
Script
@suksr
Decompose
&
Map
Analyse
&
Discover
Problem
Space
Solution
Space
Strategic
Design
Tactical
Design
Architect
&
Implement
Example
BC: EVENT MANAGEMENT
Event
create: Event
activate
reschedule
rename
EventId
id: string
Name
create: Name
name: string
EventStatus
CREATED
ACTIVATED
DEACTIVATED
deactivate
Description
create:
Description
desc: string
Period
create: Period
start: Date
end: Date
Value
Object
Entity
Aggregate
Root
Aggregate
@suksr
EventController
MongoDBEventRepository
EventModel
EventApplicationService
EventRepository
POST /events/{id}/activate
POST /events DELETE /events/{id}
I
n
n
e
r
O
u
t
e
r
O
u
t
s
i
d
e
(Port)
(Adapter)
(Adapter)
(Port)
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Submissions
Manage
Event
Organiser
Build & Publish
Schedule
Communicate
w/ Speakers
Signup/Signin
Speaker
Submit
Session
DDD & Wardley Maps
Supporting Generic
Core
TACTICAL DESIGN
Submission
Handling
Event
Mngmnt.
Session
Evaluation
Messaging Account
Handling
Schedule
Mngmnt.
DDD suits best for the
core subdomain
Movement
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
- or -
- or -
@suksr
- or -
Decompose
&
Map
Analyse
&
Discover
Problem
Space
Solution
Space
Strategic
Design
Tactical
Design
Architect
&
Implement
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Wardley Maps
Supporting Generic
Core
INFRASTRUCTURE MAPPING
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Submission
Handling
Event
Mngmnt.
Session
Evaluation
Schedule
Mngmnt. Messaging Account
Handling
Understand the involved
components and their
dependencies (position)
Position
Data Storage
Infrastructure
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Submission
Handling
Event
Mngmnt.
Session
Evaluation
Schedule
Mngmnt. Messaging Account
Handling
Understand the involved
components and their
dependencies (position)
Data Storage
Search Engine
Wardley Maps
INFRASTRUCTURE MAPPING
Position
Infrastructure
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Submission
Handling
Event
Mngmnt.
Session
Evaluation
Schedule
Mngmnt. Messaging Account
Handling
Understand the involved
components and their
dependencies (position)
Data Storage
Search Engine
Compute Platform
Wardley Maps
INFRASTRUCTURE MAPPING
Position
Infrastructure
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Submission
Handling
Event
Mngmnt.
Session
Evaluation
Schedule
Mngmnt. Messaging Account
Handling
Understand the involved
components and their
dependencies (position)
Data Storage
Search Engine
Compute Platform
VM
Wardley Maps
INFRASTRUCTURE MAPPING
Position
Infrastructure
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Data Storage
Search Engine
Compute Platform
VM
Movement
Plot components along
evolution axes (movement)
and use appropriate method
per evolution stage
Submission
Handling
Event
Mngmnt.
Session
Evaluation
Schedule
Mngmnt. Messaging Account
Handling
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Infrastructure
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Data Storage
Search Engine
Compute Platform
VM
Submission
Handling
Event
Mngmnt.
Session
Evaluation
Schedule
Mngmnt. Messaging Account
Handling
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Infrastructure
& operational
complexities
Wardley Maps
INFRASTRUCTURE MAPPING
Infrastructure
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Submission
Handling
Event
Mngmnt.
Session
Evaluation
Schedule
Mngmnt. Messaging Account
Handling
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Data related
components & activities
Compute
Platform
Data Storage
Search Engine
VM
Wardley Maps
INFRASTRUCTURE MAPPING
Infrastructure
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
DDD & Wardley Maps
Supporting Generic
Core
TACTICAL DESIGN
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Submission
Handling
Event
Mngmnt.
Session
Evaluation
Schedule
Mngmnt. Messaging Account
Handling
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Search Engine
Compute
Platform
Data Storage
VM
Service related
components & activities
Infrastructure
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Submission
Handling
Event
Mngmnt.
Session
Evaluation
Schedule
Mngmnt. Messaging Account
Handling
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Search Engine
Compute
Platform
Data Storage
VM
Service interaction
related components &
activities
Wardley Maps
INFRASTRUCTURE MAPPING
Infrastructure
command
query
Request-Driven
@suksr
API
API
Service Interactions
command
query
Request-Driven
Message Broker
publish subscribe
Event-Driven
@suksr
API
API
Service Interactions
command
query
Message Broker
publish subscribe
command
query
Request-Driven Hybrid
Message Broker
publish subscribe
Event-Driven
@suksr
API
API
API
Service Interactions
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Search Engine
Compute
Platform
Data Storage
VM
Request-driven related
components & activities
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H.
Infrastructure
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Compute
Platform
VM
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H.
Event-driven & hybrid
related components &
activities
Message
Broker
Search
Engine
Data Storage
Infrastructure
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Compute
Platform
VM
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H.
Message
Broker
Search
Engine
Data Storage
Discuss & plan
Infrastructure
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Compute
Platform
VM
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H.
Message
Broker
Search
Engine
Data Storage
Discuss & plan
Open Source Software
Infrastructure
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H.
OSS
Example
Message
Broker
Search
Engine Data
Storage
Compute Platform
VM
Open Source Software
Infrastructure
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H.
OSS
Message
Broker
Search
Engine Data
Storage
Compute Platform
VM
Discuss & plan
Offload to cloud
hosted services
Infrastructure
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H.
OSS
Compute Platform
VM
DB aaS
SE aaS
MB aaS
Offload to cloud
hosted services
ID aaS
Infrastructure
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H.
OSS
Compute Platform
VM
DB aaS
SE aaS
MB aaS
Discuss & plan
Offload to container
orchestration platform
ID aaS
Infrastructure
Managed by YOU
Managed by Platform
Hardware
O/S
Virtualization
Container
Runtime
O/S
Orchestration
µService
Container
Runtime
µService
Service Discovery
Load Balancer
Config-Mngmt.
Monitoring
Log Aggreation
Health Checks
Recovery Scaling
@suksr
Container Orchestration
API Gateway
Containerized
Microservice
Pod
Service
Volume
Deployment
Master Node
Worker Node
Worker Node
Ingress
Deployment Deployment
Container Orchestration
BASIC COMPONENTS OF KUBERNETES
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H.
OSS
VM
DB aaS
MB aaS
Worker Nodes Master Node
SE aaS
Container Orchestration
w/ Kubernetes
Compute Platform
ID aaS
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H.
OSS
VM
DB aaS
MB aaS
Worker Nodes Master Node
SE aaS
Container Orchestration
w/ Kubernetes
Compute Platform
Pod Deploym. Volume Ingress
Service
New Primitives
ID aaS
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H.
OSS
VM
DB aaS
MB aaS
Worker Nodes Master Node
SE aaS
Container Orchestration
w/ Kubernetes
Compute Platform
Pod Deploym. Volume Ingress
Service
Secret
Stateful
Set
Cron
Job
Job
Config
Map
Network
Policy
Replica
Set
Daemon
Set
Horizontal
Pod Autoscaler
Persistent
Volume
Claim
Egress
more ...
ID aaS
Infrastructure
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H.
OSS
VM
DB aaS
MB aaS
Worker Nodes Master Node
SE aaS
Compute Platform
Container Orchestration
Discuss & plan
Offload application
networking concerns
to a service mesh
ID aaS
Infrastructure
Circuit Breaker Timeout Retries
Kubernetes / Service Mesh
Sidecar
Proxy
Application Networking Concerns
@suksr
Metrics Security
Sidecar
Proxy
Distributed Tracing Log Aggregation
Separation Of Concerns
SERVICE MESH
Proxy Proxy
Microservice Microservice
Policy & Telemetry
(Mixer)
Discovery & Config
to Proxies
(Pilot)
Config
(Galley)
TLS Certs to
Proxies
(Citadel)
Data Plane
Control Plane
HTTP, gRPC, TCP
mTLS
Service Mesh
COMPONENTS OF ISTIO
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H.
VM
DB aaS
MB aaS
Worker Nodes Master Node
SE aaS
Container Orchestration
ID aaS
Destination
Rule Gateway
Service
Entry Policy
ServiceRole /
-Binding ClusterRbac
Config
Virtual
Service
Service Mesh
Infrastructure
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Manage
Organiser
Build & Publish Communicate Signup/Signin
Speaker
Submit
Supporting Generic
Core
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
D.
Schedule
Session Event Submission w/ Speakers
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
Wardley Maps
INFRASTRUCTURE MAPPING
Submission H. Event M. Session Eval. Schedule M. Messaging Account H.
VM
DB aaS
MB aaS
Worker Nodes Master Node
SE aaS
Container Orchestration
ID aaS
Service Mesh
Discuss & plan
Move to
Serverless
Infrastructure
Function
Event
Event-Driven Workflow
Hardware
Data Store
O/S
Virtualization Container Runtime
Fully Managed By Third Party
Ephemeral Function
Pay-per-Execution
Auto-Scaling
@suksr
triggers
Serverless w/ FaaS
CHARACTERISTICS
Lambda
API Gateway
SNS
SQS
DynamoDB
Step Functions
Core AWS Serverless Building Blocks
S3
Kinesis
CloudWatch
Cognito
@suksr
IAM
and more
Serverless
AWS BUILDING BLOCKS
ApiGatewayAdapter
DynamoDBAdapter
EventModel
EventApplicationService
EventRepository
DynamoDB
newEvent
API Gateway
Manage
Event
Organiser
Event Management
ApiGatewayAdapter
DynamoDBAdapter
EventModel
EventApplicationService
EventRepository
E
v
e
n
t
P
u
b
l
i
s
h
e
r
S
N
S
T
o
p
i
c
A
d
a
p
t
e
r
DynamoDB
SNS
newEvent activateEvent
API Gateway
Manage
Event
Organiser
Event Management
ApiGatewayAdapter
DynamoDBAdapter
EventModel
EventApplicationService
EventRepository
E
v
e
n
t
P
u
b
l
i
s
h
e
r
S
N
S
T
o
p
i
c
A
d
a
p
t
e
r
DynamoDB
SNS
newEvent activateEvent
API Gateway
Manage
Event
DynamoDBAdapter
SessionModel
SessionApplicationService
SessionRepository
DynamoDB
S
N
S
T
o
p
i
c
A
d
a
p
t
e
r
e
v
e
n
t
A
c
t
i
v
a
t
e
d
Organiser
Event Management Session Handling
ApiGatewayAdapter
DynamoDBAdapter
EventModel
EventApplicationService
EventRepository
E
v
e
n
t
P
u
b
l
i
s
h
e
r
S
N
S
T
o
p
i
c
A
d
a
p
t
e
r
DynamoDB
SNS
newEvent activateEvent
API Gateway
Manage
Event
ApiGatewayAdapter
DynamoDBAdapter
SessionModel
SessionApplicationService
SessionRepository
DynamoDB
submitSession
API Gateway
Submit
Session
S
N
S
T
o
p
i
c
A
d
a
p
t
e
r
e
v
e
n
t
A
c
t
i
v
a
t
e
d
S
3
A
d
a
p
t
e
r
S3
pictureUploaded
Organiser Speaker
Event Management Session Handling
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Evaluate
Submissions
Manage
Event
Organiser
Build & Publish
Schedule
Communicate
w/ Speakers
Signup/Signin
Speaker
Submit
Session
DDD & Wardley Maps
Supporting Generic
Core
TACTICAL DESIGN
Submission
Handling
Event
Mngmnt.
Session
Evaluation
Messaging Account
Handling
Schedule
Mngmnt.
Build in-house
Use/buy off-the-shelf product
Outsource to utility suppliers
@suksr
Problem
Space
Solution
Space
Strategic
Design
Tactical
Design
Serverless w/ FaaS
API Gateway
Lambda DynamoDB S3 SNS
Cognito
SE aaS
Infrastructure
Serverless Infrastructure Providers
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Summary
@suksr
Know your users
& user needs
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Summary
Supporting Generic
Core
@suksr
Decompose
&
Map
Analyse
&
Discov.
Problem
Space
Solution
Sp.
Strategic
Design
Know your users
& user needs
Understand the
problem first and
focus on core domain
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Summary
Supporting Generic
Core
@suksr
Decompose
&
Map
Analyse
&
Discov.
Problem
Space
Solution
Space
Strategic
Design
Tactical
Design
Architect
&
Implement
- or -
- or - - or -
Know your users
& user needs
Understand the
problem first and
focus on core domain
DDD suits well for your
core domain
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Summary
Supporting Generic
Core
@suksr
Decompose
&
Map
Analyse
&
Discov.
Problem
Space
Solution
Space
Strategic
Design
Tactical
Design
Architect
&
Implement
Infrastructure
Know your users
& user needs
Understand the
problem first and
focus on core domain
DDD suits well for your
core domain
Identify and outsource
commodities
Value
Chain
Invisible
Visible
Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Summary
Supporting Generic
Core
@suksr
Decompose
&
Map
Analyse
&
Discov.
Problem
Space
Solution
Space
Strategic
Design
Tactical
Design
Architect
&
Implement
Infrastructure
Know your users
& user needs
Understand the
problem first and
focus on core domain
DDD suits well for your
core domain
Identify and outsource
commodities
Efficiency enables
innovation
Susanne Kaiser
Independent Tech Consultant
@suksr
susanne@kaiser-consulting.net

DDD Domain Driven Design schema 2024 xxx

  • 1.
    Preparing For aFuture Microservices Journey Using Wardley Maps Susanne Kaiser Independent Tech Consultant @suksr DDD &
  • 2.
    Source: https://www.marketresearchfuture.com/reports/microservices-architecture-market-3149 Microservices ArchitectureMarket Key Trends Loose Coupling Deployment Domain Driven Design 2016 2017 2018 2019 2020 2021 2022 2023 USD ~33 Billion Market Size (USD Billion) CAGR ~17%
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
    @suksr High cohesion within aservice Loose coupling between services
  • 8.
    @suksr High cohesion within aservice Loose coupling between services
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
    API API API Service Discovery 1. Register 3.Connect 2. Discover Hardware O/S Virtualization Container Runtime @suksr
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
    API API API Service Discovery API Timeout-Handling Retries Bulk- heads Circuit Breaker MessageBroker Hardware O/S Virtualization Container Runtime @suksr Load-Balancer Idempotency
  • 23.
    API API API Service Discovery Load-Balancer API Timeout-Handling Retries Bulk- heads CircuitBreaker Message Broker API-Gateway Hardware O/S Virtualization Container Runtime @suksr Idempotency
  • 24.
    API API API Service Discovery API Timeout-Handling Retries Bulk- heads Message Broker API-Gateway CircuitBreaker Config-Mngmt. Hardware O/S Virtualization Container Runtime @suksr Load-Balancer Idempotency
  • 25.
    API API API Service Discovery API Timeout-Handling Retries Bulk- heads Message Broker API-Gateway CircuitBreaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks Hardware O/S Virtualization Container Runtime @suksr Load-Balancer Idempotency
  • 26.
    API API API Service Discovery API Timeout-Handling Retries Bulk- heads Message Broker API-Gateway CircuitBreaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks SCM Checkout Test Build CI/CD Pipeline Deploy Hardware O/S Virtualization Container Runtime @suksr Load-Balancer Idempotency
  • 27.
    Recovery API API API Service Discovery API Timeout-Handling Retries Bulk- heads Message Broker API-Gateway CircuitBreaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks SCM Checkout Test Build CI/CD Pipeline Deploy Hardware O/S Virtualization Container Runtime Backup @suksr Load-Balancer Scaling Idempotency
  • 28.
  • 29.
    Hardware Data Store API API-Gateway ServiceDiscovery Load-Balancer Message Broker Timeout-Handling Retries Idempotency Bulkheads Circuit Breaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks SCM O/S Virtualization Container Runtime Checkout Test Build CI/CD Pipeline Deploy µService Backup Recovery @suksr Scaling Maintenance Integration Security
  • 30.
    Domain Driven Design(DDD) – Terminology Strategic Design Tactical Design Bounded Context Ubiquitous Language Core Subdomain Supporting Subdomain Generic Subdomain Problem Space Solution Space Context Maps Anti-Corruption Layer Shared Kernel Open Host Service Separate Ways Partnership Customer-Supplier Conformist Domain Model Entity Value Object Aggregate Repository Factory Application Service Domain Service Domain Event @suksr
  • 31.
    Hardware Data Store API API-GatewayService Discovery Load-Balancer Message Broker Timeout-Handling Retries Idempotency Bulkheads Circuit Breaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks SCM O/S Virtualization Container Runtime Checkout Test Build CI/CD Pipeline Deploy µService Backup Recovery Scaling Maintenance Integration Security Strategic Design Tactical Design Problem Space Solution Space Bounded Context Ubiquitous Language Core Subdomain Supporting Subdomain Generic Subdomain Context Maps Anti-Corruption Layer Shared Kernel Open Host Service Separate Ways Partnership Customer-Supplier Conformist Domain Model Entity Value Object Aggregate Repository Factory Application Service Domain Service Domain Event @suksr
  • 32.
    Value Chain Invisible Visible Evolution Visualisation of a valuechain’s evolution Genesis Custom-Built Product (+rental) Commodity (+utility) Position Movement Wardley Maps BY SIMON WARDLEY Uncharted Industrialised @suksr
  • 33.
    Wardley Maps –VALUE CHAIN Who are your users? Value Chain Invisible Visible @suksr
  • 34.
    Wardley Maps –VALUE CHAIN Who are your users? What are your users’ needs? Value Chain Invisible Visible @suksr
  • 35.
    Wardley Maps –VALUE CHAIN Who are your users? What are your users’ needs? What are the components/activities to fulfill your users’ needs incl. dependencies? Value Chain Invisible Visible Position @suksr
  • 36.
    Wardley Maps –LANDSCAPE Value Chain Invisible Visible Evolution Components along evolution axes Genesis Custom-Built Product (+rental) Commodity (+utility) Position Movement @suksr
  • 37.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Everything evolves Past Current Future Supply Competition Demand Competition Uncharted Industrialised Wardley Maps – PATTERNS Movement @suksr
  • 38.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Everything evolves Past Current Future Continuous adaption Wardley Maps – PATTERNS Movement Evolution @suksr
  • 39.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Past Current Future Characteristics change Uncharted Undefined market Uncertain Unpredictable Rare Poorly understood Forming market Learning on use Increasing understanding Slowly increasing consumption Rapid increases in learning Growing market Learning on operation Increasing education Rapidly increasing consumption Rapid increase in use Mature market Known / accepted Stable Widespread and stabilising Commonly understood (in term of use) Industrialised Wardley Maps – PATTERNS Movement @suksr
  • 40.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Efficiency enables innovation Uncharted Industrialised Wardley Maps – PATTERNS Movement @suksr
  • 41.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Efficiency enables innovation Uncharted Industrialised Wardley Maps – PATTERNS Movement @suksr
  • 42.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Efficiency enables innovation Uncharted Industrialised Wardley Maps – PATTERNS Movement @suksr
  • 43.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Efficiency enables innovation Uncharted Industrialised Wardley Maps – PATTERNS Movement @suksr
  • 44.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Wardley Maps – PRINCIPLES Use appropriate methods per evolution stage Build in-house Use/buy off-the-shelf product Outsource to utility suppliers @suksr
  • 45.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Use appropriate methods per evolution stage Wardley Maps – PRINCIPLES Build in-house Use/buy off-the-shelf product Outsource to utility suppliers @suksr
  • 46.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Use appropriate methods per evolution stage Wardley Maps – PRINCIPLES Build in-house Use/buy off-the-shelf product Outsource to utility suppliers @suksr
  • 47.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Know your users & focus on user needs Wardley Maps – PRINCIPLES Build in-house / Agile Use/buy off-the-shelf product / Lean Outsource to utility suppliers / Six Sigma @suksr
  • 48.
    Domain Driven Design UbiquitousLanguage Domain Knowledge Understanding the problem domain first before solving it Problem Domain Domain Experts Development Teams Collaboration @suksr
  • 49.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution DDD & Wardley Maps Problem Domain Strategic Design DDD Patterns & Practices Tactical Design @suksr Strategic Design Tactical Design
  • 50.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution DDD & Wardley Maps Problem Domain Strategic Design DDD Patterns & Practices Tactical Design Analysing the business domain Discovering Subdomains Problem Space @suksr Problem Space Strategic Design Tactical Design Analyse & Discover
  • 51.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution DDD & Wardley Maps Problem Domain Strategic Design DDD Patterns & Practices Tactical Design Analysing the business domain Discovering Subdomains Problem Space Decomposing into modular components (Bounded Contexts (BC)) Mapping interaction patterns between BC (Context Maps) Solution Space @suksr Problem Space Solution Space Strategic Design Tactical Design Analyse & Discover Decompose & Map High-Level Design Decisions
  • 52.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution DDD & Wardley Maps Problem Domain Strategic Design DDD Patterns & Practices Tactical Design Architecting a solution fitting the problem domain as closely as possible Provides building blocks to implement domain model Analysing the business domain Discovering Subdomains Problem Space Decomposing into modular components (Bounded Contexts (BC) Mapping interaction patterns between BC (Context Maps) Solution Space @suksr Solution Space Problem Space Solution Space Strategic Design Tactical Design Analyse & Discover Architect & Implement High-Level Design Decisions Low-Level Design Decisions Decompose & Map
  • 53.
    Analyse & Discover Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Distilling the problem domain & discovering the core subdomain DDD & Wardley Maps Core Subdomain Problem Domain STRATEGIC DESIGN (PROBLEM SPACE) Supporting Subdomain Generic Subdomain @suksr Problem Space Strategic Design
  • 54.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Distilling the problem domain & discovering the core subdomain DDD & Wardley Maps Core Subdomain Problem Domain Competitive advantage Complex Changes often Build in-house STRATEGIC DESIGN (PROBLEM SPACE) Supporting Subdomain Generic Subdomain @suksr Analyse & Discover Problem Space Strategic Design Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
  • 55.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Distilling the problem domain & discovering the core subdomain DDD & Wardley Maps Core Subdomain Problem Domain Competitive advantage Complex Changes often Build in-house No competitive advantage Quite simple Does not change often Prefer to buy/use off-the-shelf STRATEGIC DESIGN (PROBLEM SPACE) Supporting Subdomain Generic Subdomain @suksr Analyse & Discover Problem Space Strategic Design Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
  • 56.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Distilling the problem domain & discovering the core subdomain DDD & Wardley Maps Core Subdomain Problem Domain Competitive advantage Complex Changes often Build in-house No competitive advantage Quite simple Does not change often Prefer to buy/use off-the-shelf No competitive advantage Generally complex Does not change often Buy/use off-the-shelf / outsource STRATEGIC DESIGN (PROBLEM SPACE) Supporting Subdomain Generic Subdomain @suksr Analyse & Discover Problem Space Strategic Design Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
  • 57.
    Decompose & Map Analyse & Discover Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Model Driven Design DDD & Wardley Maps STRATEGIC DESIGN (SOLUTION SPACE) Development Teams Domain Experts Ubiquitous Language Analysis Model Code Model Domain Model Core Subdomain Supporting Subdomain Generic Subdomain Problem Domain abstracted by @suksr Problem Space Solution Space Strategic Design
  • 58.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Bounded Contexts DDD & Wardley Maps STRATEGIC DESIGN (SOLUTION SPACE) Core Subdomain Supporting Subdomain Generic Subdomain Problem Domain Linguistic/semantic boundary Ownership boundary Model integrity boundary Physical boundary Different architectural patterns per context possible @suksr Microservice candidates Decompose & Map Analyse & Discover Problem Space Strategic Design Solution Space
  • 59.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Submissions Manage Event Organiser Build & Publish Schedule Communicate w/ Speakers Signup/Signin Know your users & focus on user needs Submit Session DDD & Wardley Maps STRATEGIC DESIGN (PROBLEM SPACE) Speaker @suksr Analyse & Discover Problem Space Strategic Design
  • 60.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Submissions Manage Event Organiser Build & Publish Schedule Communicate w/ Speakers Signup/Signin Speaker Submit Session DDD & Wardley Maps STRATEGIC DESIGN (PROBLEM SPACE) Discovering subdomains Supporting Generic Core @suksr Analyse & Discover Problem Space Strategic Design
  • 61.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Submissions Manage Event Organiser Build & Publish Schedule Communicate w/ Speakers Signup/Signin Speaker Submit Session DDD & Wardley Maps STRATEGIC DESIGN (SOLUTION SPACE) Supporting Generic Core Event Evaluation Account Schedule Message Session Domain Models @suksr Decompose & Map Analyse & Discover Problem Space Solution Space Strategic Design
  • 62.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Submissions Manage Event Organiser Build & Publish Schedule Communicate w/ Speakers Signup/Signin Speaker Submit Session DDD & Wardley Maps Supporting Generic Core Event Evaluation Account Schedule Message Speaker Session CfP STRATEGIC DESIGN (SOLUTION SPACE) Domain Models @suksr Decompose & Map Analyse & Discover Problem Space Strategic Design Solution Space
  • 63.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Submissions Manage Event Organiser Build & Publish Schedule Communicate w/ Speakers Signup/Signin Speaker Submit Session DDD & Wardley Maps Supporting Generic Core Event Evaluation Account Schedule Message Speaker Profile Submitted Session CfP Settings Recipient Open CfP Evaluated Session Scheduled Session STRATEGIC DESIGN (SOLUTION SPACE) Domain Models @suksr Decompose & Map Analyse & Discover Problem Space Strategic Design Solution Space
  • 64.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Submissions Manage Event Organiser Build & Publish Schedule Communicate w/ Speakers Signup/Signin Speaker Submit Session DDD & Wardley Maps Supporting Generic Core STRATEGIC DESIGN (SOLUTION SPACE) Bounded Contexts Linguistic/semantic boundary Model integrity boundary Event Evaluation Account Schedule Message Submitted Session CfP Settings Recipient Open CfP Evaluated Session Scheduled Session Speaker Profile Session Evaluation Submission Handling Event Mngmnt. Schedule Mngmnt. Messaging Account Handling @suksr Decompose & Map Analyse & Discover Problem Space Strategic Design Solution Space
  • 65.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Submissions Manage Event Organiser Build & Publish Schedule Communicate w/ Speakers Signup/Signin Speaker Submit Session DDD & Wardley Maps Supporting Generic Core STRATEGIC DESIGN (SOLUTION SPACE) Submission Handling Event Mngmnt. Session Evaluation Messaging Account Handling Schedule Mngmnt. Bounded Contexts Ownership boundary Linguistic/semantic boundary Model integrity boundary @suksr Decompose & Map Analyse & Discover Problem Space Strategic Design Solution Space
  • 66.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Submissions Manage Event Organiser Build & Publish Schedule Communicate w/ Speakers Signup/Signin Speaker Submit Session DDD & Wardley Maps Supporting Generic Core STRATEGIC DESIGN (SOLUTION SPACE) Submission Handling Event Mngmnt. Session Evaluation Messaging Account Handling Schedule Mngmnt. Bounded Contexts Ownership boundary Linguistic/semantic boundary Model integrity boundary Physical boundary SCM Data store CI/CD Artefact @suksr Decompose & Map Analyse & Discover Problem Space Strategic Design Solution Space
  • 67.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Submissions Manage Event Organiser Build & Publish Schedule Communicate w/ Speakers Signup/Signin Speaker Submit Session DDD & Wardley Maps Supporting Generic Core TACTICAL DESIGN Submission Handling Event Mngmnt. Session Evaluation Messaging Account Handling Schedule Mngmnt. Architectural Patterns Architectural patterns can differ per Bounded Context, e.g. Layered Architecture Hexagonal Architecture CQRS @suksr Decompose & Map Analyse & Discover Problem Space Solution Space Strategic Design Tactical Design Architect & Implement
  • 68.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Submissions Manage Event Organiser Build & Publish Schedule Communicate w/ Speakers Signup/Signin Speaker Submit Session DDD & Wardley Maps Supporting Generic Core TACTICAL DESIGN Submission Handling Event Mngmnt. Session Evaluation Messaging Account Handling Schedule Mngmnt. Business Logic Implementation Patterns Business logic implementation patterns can differ per Bounded Context, e.g. Domain Model Active Record Transaction Script @suksr Decompose & Map Analyse & Discover Problem Space Solution Space Strategic Design Tactical Design Architect & Implement
  • 69.
    Example BC: EVENT MANAGEMENT Event create:Event activate reschedule rename EventId id: string Name create: Name name: string EventStatus CREATED ACTIVATED DEACTIVATED deactivate Description create: Description desc: string Period create: Period start: Date end: Date Value Object Entity Aggregate Root Aggregate @suksr EventController MongoDBEventRepository EventModel EventApplicationService EventRepository POST /events/{id}/activate POST /events DELETE /events/{id} I n n e r O u t e r O u t s i d e (Port) (Adapter) (Adapter) (Port)
  • 70.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Submissions Manage Event Organiser Build & Publish Schedule Communicate w/ Speakers Signup/Signin Speaker Submit Session DDD & Wardley Maps Supporting Generic Core TACTICAL DESIGN Submission Handling Event Mngmnt. Session Evaluation Messaging Account Handling Schedule Mngmnt. DDD suits best for the core subdomain Movement Build in-house Use/buy off-the-shelf product Outsource to utility suppliers - or - - or - @suksr - or - Decompose & Map Analyse & Discover Problem Space Solution Space Strategic Design Tactical Design Architect & Implement
  • 71.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Wardley Maps Supporting Generic Core INFRASTRUCTURE MAPPING @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling Understand the involved components and their dependencies (position) Position Data Storage Infrastructure
  • 72.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling Understand the involved components and their dependencies (position) Data Storage Search Engine Wardley Maps INFRASTRUCTURE MAPPING Position Infrastructure
  • 73.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling Understand the involved components and their dependencies (position) Data Storage Search Engine Compute Platform Wardley Maps INFRASTRUCTURE MAPPING Position Infrastructure
  • 74.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling Understand the involved components and their dependencies (position) Data Storage Search Engine Compute Platform VM Wardley Maps INFRASTRUCTURE MAPPING Position Infrastructure
  • 75.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Data Storage Search Engine Compute Platform VM Movement Plot components along evolution axes (movement) and use appropriate method per evolution stage Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling Build in-house Use/buy off-the-shelf product Outsource to utility suppliers Wardley Maps INFRASTRUCTURE MAPPING Infrastructure
  • 76.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Data Storage Search Engine Compute Platform VM Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling Build in-house Use/buy off-the-shelf product Outsource to utility suppliers Infrastructure & operational complexities Wardley Maps INFRASTRUCTURE MAPPING Infrastructure
  • 77.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling Build in-house Use/buy off-the-shelf product Outsource to utility suppliers Data related components & activities Compute Platform Data Storage Search Engine VM Wardley Maps INFRASTRUCTURE MAPPING Infrastructure
  • 78.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit DDD & Wardley Maps Supporting Generic Core TACTICAL DESIGN @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling Build in-house Use/buy off-the-shelf product Outsource to utility suppliers Search Engine Compute Platform Data Storage VM Service related components & activities Infrastructure
  • 79.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Submission Handling Event Mngmnt. Session Evaluation Schedule Mngmnt. Messaging Account Handling Build in-house Use/buy off-the-shelf product Outsource to utility suppliers Search Engine Compute Platform Data Storage VM Service interaction related components & activities Wardley Maps INFRASTRUCTURE MAPPING Infrastructure
  • 80.
  • 81.
  • 82.
    command query Message Broker publish subscribe command query Request-DrivenHybrid Message Broker publish subscribe Event-Driven @suksr API API API Service Interactions
  • 83.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Build in-house Use/buy off-the-shelf product Outsource to utility suppliers Search Engine Compute Platform Data Storage VM Request-driven related components & activities Wardley Maps INFRASTRUCTURE MAPPING Submission H. Event M. Session Eval. Schedule M. Messaging Account H. Infrastructure
  • 84.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Build in-house Use/buy off-the-shelf product Outsource to utility suppliers Compute Platform VM Wardley Maps INFRASTRUCTURE MAPPING Submission H. Event M. Session Eval. Schedule M. Messaging Account H. Event-driven & hybrid related components & activities Message Broker Search Engine Data Storage Infrastructure
  • 85.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Build in-house Use/buy off-the-shelf product Outsource to utility suppliers Compute Platform VM Wardley Maps INFRASTRUCTURE MAPPING Submission H. Event M. Session Eval. Schedule M. Messaging Account H. Message Broker Search Engine Data Storage Discuss & plan Infrastructure
  • 86.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Build in-house Use/buy off-the-shelf product Outsource to utility suppliers Compute Platform VM Wardley Maps INFRASTRUCTURE MAPPING Submission H. Event M. Session Eval. Schedule M. Messaging Account H. Message Broker Search Engine Data Storage Discuss & plan Open Source Software Infrastructure
  • 87.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Build in-house Use/buy off-the-shelf product Outsource to utility suppliers Wardley Maps INFRASTRUCTURE MAPPING Submission H. Event M. Session Eval. Schedule M. Messaging Account H. OSS Example Message Broker Search Engine Data Storage Compute Platform VM Open Source Software Infrastructure
  • 88.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Build in-house Use/buy off-the-shelf product Outsource to utility suppliers Wardley Maps INFRASTRUCTURE MAPPING Submission H. Event M. Session Eval. Schedule M. Messaging Account H. OSS Message Broker Search Engine Data Storage Compute Platform VM Discuss & plan Offload to cloud hosted services Infrastructure
  • 89.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Build in-house Use/buy off-the-shelf product Outsource to utility suppliers Wardley Maps INFRASTRUCTURE MAPPING Submission H. Event M. Session Eval. Schedule M. Messaging Account H. OSS Compute Platform VM DB aaS SE aaS MB aaS Offload to cloud hosted services ID aaS Infrastructure
  • 90.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Build in-house Use/buy off-the-shelf product Outsource to utility suppliers Wardley Maps INFRASTRUCTURE MAPPING Submission H. Event M. Session Eval. Schedule M. Messaging Account H. OSS Compute Platform VM DB aaS SE aaS MB aaS Discuss & plan Offload to container orchestration platform ID aaS Infrastructure
  • 91.
    Managed by YOU Managedby Platform Hardware O/S Virtualization Container Runtime O/S Orchestration µService Container Runtime µService Service Discovery Load Balancer Config-Mngmt. Monitoring Log Aggreation Health Checks Recovery Scaling @suksr Container Orchestration API Gateway
  • 92.
    Containerized Microservice Pod Service Volume Deployment Master Node Worker Node WorkerNode Ingress Deployment Deployment Container Orchestration BASIC COMPONENTS OF KUBERNETES
  • 93.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Build in-house Use/buy off-the-shelf product Outsource to utility suppliers Wardley Maps INFRASTRUCTURE MAPPING Submission H. Event M. Session Eval. Schedule M. Messaging Account H. OSS VM DB aaS MB aaS Worker Nodes Master Node SE aaS Container Orchestration w/ Kubernetes Compute Platform ID aaS
  • 94.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Build in-house Use/buy off-the-shelf product Outsource to utility suppliers Wardley Maps INFRASTRUCTURE MAPPING Submission H. Event M. Session Eval. Schedule M. Messaging Account H. OSS VM DB aaS MB aaS Worker Nodes Master Node SE aaS Container Orchestration w/ Kubernetes Compute Platform Pod Deploym. Volume Ingress Service New Primitives ID aaS
  • 95.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Build in-house Use/buy off-the-shelf product Outsource to utility suppliers Wardley Maps INFRASTRUCTURE MAPPING Submission H. Event M. Session Eval. Schedule M. Messaging Account H. OSS VM DB aaS MB aaS Worker Nodes Master Node SE aaS Container Orchestration w/ Kubernetes Compute Platform Pod Deploym. Volume Ingress Service Secret Stateful Set Cron Job Job Config Map Network Policy Replica Set Daemon Set Horizontal Pod Autoscaler Persistent Volume Claim Egress more ... ID aaS Infrastructure
  • 96.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Build in-house Use/buy off-the-shelf product Outsource to utility suppliers Wardley Maps INFRASTRUCTURE MAPPING Submission H. Event M. Session Eval. Schedule M. Messaging Account H. OSS VM DB aaS MB aaS Worker Nodes Master Node SE aaS Compute Platform Container Orchestration Discuss & plan Offload application networking concerns to a service mesh ID aaS Infrastructure
  • 97.
    Circuit Breaker TimeoutRetries Kubernetes / Service Mesh Sidecar Proxy Application Networking Concerns @suksr Metrics Security Sidecar Proxy Distributed Tracing Log Aggregation Separation Of Concerns SERVICE MESH
  • 98.
    Proxy Proxy Microservice Microservice Policy& Telemetry (Mixer) Discovery & Config to Proxies (Pilot) Config (Galley) TLS Certs to Proxies (Citadel) Data Plane Control Plane HTTP, gRPC, TCP mTLS Service Mesh COMPONENTS OF ISTIO
  • 99.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Build in-house Use/buy off-the-shelf product Outsource to utility suppliers Wardley Maps INFRASTRUCTURE MAPPING Submission H. Event M. Session Eval. Schedule M. Messaging Account H. VM DB aaS MB aaS Worker Nodes Master Node SE aaS Container Orchestration ID aaS Destination Rule Gateway Service Entry Policy ServiceRole / -Binding ClusterRbac Config Virtual Service Service Mesh Infrastructure
  • 100.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Manage Organiser Build & Publish Communicate Signup/Signin Speaker Submit Supporting Generic Core @suksr Problem Space Solution Space Strategic Design Tactical D. Schedule Session Event Submission w/ Speakers Build in-house Use/buy off-the-shelf product Outsource to utility suppliers Wardley Maps INFRASTRUCTURE MAPPING Submission H. Event M. Session Eval. Schedule M. Messaging Account H. VM DB aaS MB aaS Worker Nodes Master Node SE aaS Container Orchestration ID aaS Service Mesh Discuss & plan Move to Serverless Infrastructure
  • 101.
    Function Event Event-Driven Workflow Hardware Data Store O/S VirtualizationContainer Runtime Fully Managed By Third Party Ephemeral Function Pay-per-Execution Auto-Scaling @suksr triggers Serverless w/ FaaS CHARACTERISTICS
  • 102.
    Lambda API Gateway SNS SQS DynamoDB Step Functions CoreAWS Serverless Building Blocks S3 Kinesis CloudWatch Cognito @suksr IAM and more Serverless AWS BUILDING BLOCKS
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Evaluate Submissions Manage Event Organiser Build & Publish Schedule Communicate w/ Speakers Signup/Signin Speaker Submit Session DDD & Wardley Maps Supporting Generic Core TACTICAL DESIGN Submission Handling Event Mngmnt. Session Evaluation Messaging Account Handling Schedule Mngmnt. Build in-house Use/buy off-the-shelf product Outsource to utility suppliers @suksr Problem Space Solution Space Strategic Design Tactical Design Serverless w/ FaaS API Gateway Lambda DynamoDB S3 SNS Cognito SE aaS Infrastructure
  • 108.
  • 109.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Summary @suksr Know your users & user needs
  • 110.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Summary Supporting Generic Core @suksr Decompose & Map Analyse & Discov. Problem Space Solution Sp. Strategic Design Know your users & user needs Understand the problem first and focus on core domain
  • 111.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Summary Supporting Generic Core @suksr Decompose & Map Analyse & Discov. Problem Space Solution Space Strategic Design Tactical Design Architect & Implement - or - - or - - or - Know your users & user needs Understand the problem first and focus on core domain DDD suits well for your core domain
  • 112.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Summary Supporting Generic Core @suksr Decompose & Map Analyse & Discov. Problem Space Solution Space Strategic Design Tactical Design Architect & Implement Infrastructure Know your users & user needs Understand the problem first and focus on core domain DDD suits well for your core domain Identify and outsource commodities
  • 113.
    Value Chain Invisible Visible Genesis Custom-Built Product(+rental) Commodity (+utility) Evolution Summary Supporting Generic Core @suksr Decompose & Map Analyse & Discov. Problem Space Solution Space Strategic Design Tactical Design Architect & Implement Infrastructure Know your users & user needs Understand the problem first and focus on core domain DDD suits well for your core domain Identify and outsource commodities Efficiency enables innovation
  • 114.
    Susanne Kaiser Independent TechConsultant @suksr susanne@kaiser-consulting.net