2. About Myself
● Close to 40 years of experience in the software technology field
● VP Technology, Chief Technology Advisor Group, NDS (2010 - 2012)
● Distinguished Engineer, Office of CTO, Cisco Engineering (2012 - 2016)
● Today CTO at IRKI
● Focusing on software product line strategy
○ Lean Startup
○ Wardley Maps
○ (Strategic) Domain-Driven Design
○ Cynefin
○ Promise Theory
○ Serverless Architecture
○ ...
3.
4. Metallic Sage Green Luster,
Opaque Metallic Matte
Galvanized SF Pink Blush,
Opaque Galvanized
Semi-Matte
Metallic Dark Raspberry
Iris,
Opaque Metallic Matte
Light Olive Luster,
Opaque Metallic Matte
9. Domain Model
Ubiquitous Language
Bounded Context
Permeable Context Boundaries Result in BBoM
Symptoms of Rotting Design
● Rigidity - hard to change
● Fragility - easy to break
● Immobility - hard to reuse
● Viscosity - hard to do the right thing
● Opacity - disorganized expression
● ...
10. 10
4+1 View of Software Architecture
Conceptual Physical
Process View Deployment View
Logical View
Use-Case View
Implementation View
End-user
Functionality
Programmers
Software management
Performance
Scalability
Throughput
System integrators
System topology
Delivery, installation
communication
System engineering
Analysts/Designers
Structure
P. Krutchen, “Architectural Blueprints - The “4+1” View Model of Software Architecture
11. 11
4+1 View of Software Architecture
Conceptual Physical
Process View Deployment View
Logical View
Use-Case View
Implementation View
End-user
Functionality
Programmers
Software management
Performance
Scalability
Throughput
System integrators
System topology
Delivery, installation
communication
System engineering
Analysts/Designers
Structure
Bounded Context → Microservice
21. Pull Up/Push Down
Pull up useful
abstractions
Push down support and
generic stuff; control
through OSS contributions
Fashion Accessories
There is no ideal
core domain model
sitting and waiting to
be discovered.
It’s more like
attractor gradually
emerging out of
multiple “safe-to-fail”
experimentations
23. Strategic Domain-Driven Design
● Compute
● Network
● Storage
● Intelligence
Serverless BC
● 2D Shape
● 3D Shape
● ...
Geometry
● Color
● ...
Graphics
Microservice = CF Stack?
ERP, CRM,
SCM, PLM,
ECM, ...
Taxes
Shipment
Web Site
Inventory
....
Fashion Accessories
24. Strategic Domain-Driven Design
● Compute
● Network
● Storage
● Intelligence
Serverless BC
● 2D Shape
● 3D Shape
● ...
Geometry
● Color
● ...
Graphics
Microservice = CF Stack?
ERP, CRM,
SCM, PLM,
ECM, ...
Taxes
Shipment
Web Site
Inventory
....
Fashion Accessories
25. Strategic Domain-Driven Design
● 2D Shape
● 3D Shape
● ...
Geometry
● Color
● ...
Graphics
● Compute
● Network
● Storage
● Intelligence
Serverless BC
Microservice = CF Stack?
ERP, CRM,
SCM, PLM,
ECM, ...
Taxes
Shipment
Web Site
Inventory
....
Fashion Accessories
...
26. Context Map is the Key
● 2D Shape
● 3D Shape
● ...
Geometry
● Color
● ...
Graphics
● Compute
● Network
● Storage
● Intelligence
Serverless BC
Microservice = CF Stack?
ERP, CRM,
SCM, PLM,
ECM, ...
Taxes
Shipment
Web Site
Inventory
....
Fashion Accessories
...
ACL
ACL
ACL
27. Emerging Core
Domain so Far
Types
Components Products
Inventory
Items Customers
Manufacturers
Vendors
Catalog
Items
Shapes
Colors
Pictures
28. Amazon is Eating Software ...
valuechain
evolutionG C P U
eTailer
Service
AIaaS
FaaS
PaaS
IaaS
SCM
...
Web Scale
Operation
New
Service
29. Amazon is Eating Software ...
valuechain
evolutionG C P U
Video
Service
AIaaS
FaaS
PaaS
IaaS
Recommendations
...
Cloud
Native
Ability to build a Web Scale Application is
not a differentiator anymore!
30. Serverless Strategic DDD
Prefer utility AIaaS
Prefer product
or utility SaaS
Major effort
Pull up useful
abstractions
Proper timing for API
Push down support and
generic stuff; control
through OSS contributions
41. Serverless DDD Computation Services
Command/Query/Event
Handler
Computation Service
Bead Color/Shape Permutations
Bead Color
Bead Shape
Bead Component
Most popular products
Most popular colors per country
Minimal inventory level per product
...
42. Serverless DDD Saga (Process Manager)
Product Picture Album Building
Raw Pictures Catalog Pictures
Product Catalog
Background Cleanup Color/Light Adjustments Resolution Transcoding
46. Serverless AI ← DDD
Pereferrial Adapters Application Services
Dynamic State
Machines
Application-level Stimulo
Domain Services
Command/Query Requests EventsRaw A/V/T
Inputs
Dynamic
Classifications
Anomaly
Detection
Event Processors
Feedback and
Training
Pinterest/Instagram/Facebook/Twitter Feedback Processing
Best Earrings Match
Best Necklace Match
Historical
Data
48. Serverless → DDD Wish List
● Support for Actor Model
● Support for Reactive Programming
● JavaScript, JSON and YAML are (cloud) machine-level languages - need something at higher
level
● Simple modeling tool (lightweight UML)
● Fully fledged IDE supporting above
● Support for Semantic Maps (kind of AI service)
51. DDD for Serverless
Use DDD Strategic and Tactical
patterns as Serverless Architecture
organizing principles to prevent
ending with just a distributed version
of BBoM.
52. One who increases flesh, increases worms; one who
increases possessions, increases worry; one who
increases wives, increases witchcraft; one who increases
maidservants, increases promiscuity; one who increases
man-servants, increases thievery;
Pirkey Avot Chapter 2/7
כשפים מרבה נשים מרבה .דאגה מרבה נכסים מרבה .רימה מרבה בשר .מרבה
גזל מרבה עבדים מרבה .זימה מרבה שפחות מרבה
Kohelet Chapter 1/18
18For in much wisdom is much vexation, and he who increases knowledge,
increases pain.
:ְאוֹבכַמ ִיףסיוֹ ַתעַדּ ִיףסְיוֹו ַסעָכּ ב ָר ָהמְכָח ֹב ְרבּ ִיכּיח
56. How to Measure Productivity?
● Lines of Code - well known anti-pattern
● Story Points - less well known anti-pattern (velocity is not productivity)
● Features - “feature train” (producing many features nobody needs)
● Value - too much depends on Product Owner; not under direct control
● Domain Insights - only domain experts could bring it → a lot of experimentation
“Software Development is a
Learning Process. Running code is
byproduct.”
A.Brandolini