SlideShare a Scribd company logo
Data-Oriented
Architecture
Eyas Sharaiha <hello@eyas.sh>
Jun 23, 2021
by Paul Downey via Flickr
Agenda
Setting Context
Common Approaches
Monolithic Architecture
Service-Oriented Architecture (SOA)
Drawbacks of SOA
Data Oriented Architecture
(DOA)
Definition
Theory
Trade-offs
Data-Oriented
Architecture
(DOA) & Me
System Architecture vs Software
Design
For the purposes of this talk:
• System Architecture: Design & principles of
• … entire system of programs
• … usually in the backend
• Software Design: Design & principles of
• … single programs
Our Running Example: Trading
System
• You are a large financial institution that offers your clients to
place orders to trade
Consolidated
Prices
Place Order
Trade Confirm
Prices
Place Order
Trade Confirm
Prices
Place Order
Trade Confirm
Prices
Place Order
Trade Confirm
Monolithic Architecture
Monolithic Architecture
• In many ways, the “default” architecture
• ~1 back-end program does everything
• … fetches data from 1 or more database
Monolithic Architecture
• Monolithic Architecture is not always a mess!
• The monolithic program can
• … be well designed
• … impose separation of concerns
• … be modularized/componentized
• But, there’s no forced API boundary
• … except between:
• … client & server, or
• … server & database
API Boundaries in
Monolithic Architecture HTTP, RPC, etc.
SQL, RPC, etc.
Running Example: Monolithic
Architecture
• You are a large financial institution that offers your clients to
place orders to trade
A Single Program
Consolidated
Prices
Place Order
Trade Confirm
Prices
Place Order
Trade Confirm
Prices
Place Order
Trade Confirm
Prices
Place Order
Trade Confirm
Q&A
Monolithic Architecture
Service-Oriented
Architecture
Service-Oriented Architecture
• Organize backend into “Services”
• Services are
• Loosely coupled
• Have a clear API (usually RPC/HTTP interface)
Microservices Architecture
• A type of Service-Oriented Architecture
• Everyone defines it differently
• For me, services are
• … smaller than SOA
• … more isolated than SOA
• When designed well:
• separates concerns at the Service level
API Boundaries
RPC/HTTP
SQL/GraphQL/RPC/etc.
Each service in this diagram must be “addressable”;
individual services must have a URI (or some other path)
to the service it’s calling.
Summary: Properties of SOA
• Each Service defines its own API
• usually exposed as an RPC Interface, or HTTP
API
• Every (callable) Service is Addressable
Summary: Advantages of SOA
• Each Service can be developed &
understood independently
• Since the system is loosely coupled, new
services are free to depend on existing
services
• Easier to Mock with clear API boundary
• Easier to Debug by manually calling &
inspecting individual methods
Running Example: Microservices
• You are a large financial institution that offers your clients to
place orders to trade
Consolidated
Prices
Place Order
Trade Confirm
Prices
Place Order
Trade Confirm
Prices
Place Order
Trade Confirm
Prices
Place Order
Trade Confirm
Bank A
Connector
Bank B
Connector
Bank C
Connector
Customer
Connector
Pricing
Server
Order
Book
Q&A
Service-Oriented
Architecture
When Service-Oriented
Architecture Fails to
Scale
Problems from Addressability
• Every Service needs the address of each
Service it calls
• Splitting a Service requires modification to
all N callers
• Some “Core” services might be depended
on by many others
• Creating an Isolated Sandbox is hard
• Creating separate environments is hard
• Reasoning about data consistency is hard
Problems of Scale
• 𝑂 𝑁2 growth in integration complexity as the number of
components (𝑁) grows
• Complex topology of dependency graph, hard to reason about a
priori
Problems of Scale: Illustrated
• You are a large financial institution that offers your clients to
place orders to trade
Consolidated
Prices
Place Order
Trade Confirm
Prices
Place Order
Trade Confirm
Prices
Place Order
Trade Confirm
Prices
Place Order
Trade Confirm
Bank A
Connector
Bank B
Connector
Bank C
Connector
Customer
Connector
Pricing
Server
Order
Book
Quote
Server
Bank D
Connecto
r
Data-Oriented
Architecture
Data-Oriented Architecture
• Like SOA: organized in
small, loosely-coupled
components
• Unlike SOA:
1. Organized around a
monolithic Data Access
Layer
2. Components are Always
Stateless
3. Component-to-
Component interaction is
minimized
Monolithic Data Access Layer
• In Data Oriented Architecture, effort thinking about APIs
becomes effort thinking about Schema
• All state is data
• All data is inspectable and queryable
Components are Stateless
• In some SOA designs, each Service can have its own DB
• **or set of tables only it looks at
• In DOA, state is data & data is global
Minimized Inter-Component
Interaction
• Rather than RPCs, model state, requests, and results as data
• Communication largely can be moved into the data space
Orders
Trade
Orders
Orders
Prices
Running Example: Data Monolith
Consolidated Prices
Place Order
Trade Confirm
Prices
Place Order
Trade Confirm
Prices
Place Order
Trade Confirm
Prices
Place Order
Trade Confirm
Bank A Connector
Bank B Connector
Bank C
Connector
Customer
Connector
Pricing
Server
Order Book
Data Access Layer (Monolith)
Prices
Table
Prices
Prices
Prices
Prices
Orders
Orders
Orders
Trade
Trade
Trade
Trade
Source Security Bid Price Ask
Price
A EUR/US
D
1.1861 1.1865
A USD/CH
F
0.9226 0.9229
B EUR/US
D
1.1862 1.1864
C USD/JPY 110.21 110.26
Prices
Prices
Target Customer Security Price Status Parent
Order ac1de88a435f EUR/US
D
1.1865 OPEN NULL
Order dac8e87920f3 EUR/US
D
1.1865 FILLED NULL
Order f2ada1bec5c0 EUR/US
D
1.1864 OPEN NULL
A EUR/US
D
1.1864 OPEN <acd7e8>
Orders
Trade
The DOA Trade off
Easier Business Logic, Harder
Schema Design
DOA Scale, Illustrated
Bank D
Connecto
r
Prices
Orders
Trade
Quote
Server
Target Customer Security Typ
e
Size Status
Quoter ac1de88a435f EUR/US
D
Buy 1MM OPEN
Quoter dac8e87920f3 EUR/US
D
Buy 1MM ACCEPT
Quoter f2ada1bec5c0 EUR/US
D
Sell 5MM REJECT
Quote Request
Source Request Price
Quoter <bfe388> 1.1865
Quoter <e9f873> 1.1864
Quoter <00f9e9> 1.1864
Quote
Quote
Request
Quote
Quote
Request
Quote
Prices
Q&A
Data-Oriented Architecture
DOA, In Practice
Knowledge
Graphs
By Fuzheado via Wikipedia (ShareAlike)
Event-Driven Architectures
Is Data-Oriented Architecture just
SOA?
• Sure, but with constraints.
• If you have a SOA system with
• Schema as the primary API,
• Event/Service bus as main method of communication,
• (Almost) no segregated pockets of data
… then you have a Data-Oriented Architecture system
Didn’t you just reinvent ___?
DOA, In Theory
DOA: Theoretical Intuition Building
• Where possible, model business logic as a series of pure data
transformations:
Quote = 𝑓 Quote Request, Price1, Price2, Price3, …
Even further:
• Can your business logic entirely be modeled as a series of Map,
FlatMap, Filter, Reduce, & other Monadic operations?
• In each case, these pure transformations (e.g. 𝑓 above) are a
Component.
DOA: Theoretical Intuition Building,
contd.
• A DOA Component, being free of state, is a function;
transforming
• a bunch of inputs (that it queries or subscribes to), into
• output objects (that it creates/INSERTs)
• with no other side-effects
• Sometimes, a complex operation can be modeled as more than
one component
• thus making intermediate values visible & inspectable
Minimizing RPCs Between
Components
Instead of RPCs between components, DOA encourages:
• Data Request & Response: Can an RPC Request &
Response be meaningfully modeled as data in its own right?
• e.g. Quote Request is a request, and Quote is a response
• Data Events: If one component triggers another when
something (X) happens, can the component instead
meaningfully create an object describing X?
If these approaches are not meaningful, use directly addressable RPCs.
Data-Oriented Architecture
is only sometimes the right
architecture
by Jernej Furman via Flickr
Not for the faint of heart…
• Getting the schema right is hard & time consuming
• DOA is not always the right architecture
When is DOA right?
• Complexity of Integration > Complexity of Schema Design
• Reasoning about Data Isolation
/fin
Follow me around
the Web
https://eyas.sh/
https://blog.eyas.sh/
hello@eyas.sh

More Related Content

Similar to JOSA TechTalks - Data Oriented Architecture (20)

PPT
SOA1-Background.ppt SOFTWARE ORIENTED SERVICES AND ARCHITECTURE
AnyaForger34
 
PPT
Service Oriented Architecture
Andriy Buday
 
PPT
soa ppt v7.ppt
PrasannaVenkatesanVe1
 
PPTX
SERVICE ORIENTED ARCHITECTURE Software.pptx
ibadcui
 
ODP
Service oriented architecture 27 May 2014
Khawar Nehal [email protected]
 
PDF
SOA Next Generation V1.1
Mohamed Zakarya Abdelgawad
 
PDF
Soa Next Generation
Mohamed Zakarya Abdelgawad
 
PPT
Soa web pres new
Salma Arshad
 
DOCX
What is service
Gudissa Gabissa
 
PPTX
Service Oriented Architecture (SOA)
Mazhar Ishaq Khokhar
 
PPTX
Introduction to SOA
saeed shargi ghazani
 
PPTX
Service Oriented Architecture.pptx
siddharth246936
 
PPTX
E-Services course Chapter II ISI by Ettaieb Abdessattar
Abdessattar Ettaieb
 
PDF
SOA and DevOps v0.1
Mohamed Ismail Mostafa
 
PPT
Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 20...
Stephen Anthony
 
PPTX
Service oriented architecture
Pratik Patil
 
PPTX
SOA and Monolith Architecture - Micro Services.pptx
Kongu Engineering College, Perundurai, Erode
 
PPTX
SOA Course - Next Generation
Mohamed Zakarya Abdelgawad
 
PPTX
Software architectures
Amandeep Singh
 
SOA1-Background.ppt SOFTWARE ORIENTED SERVICES AND ARCHITECTURE
AnyaForger34
 
Service Oriented Architecture
Andriy Buday
 
soa ppt v7.ppt
PrasannaVenkatesanVe1
 
SERVICE ORIENTED ARCHITECTURE Software.pptx
ibadcui
 
Service oriented architecture 27 May 2014
Khawar Nehal [email protected]
 
SOA Next Generation V1.1
Mohamed Zakarya Abdelgawad
 
Soa Next Generation
Mohamed Zakarya Abdelgawad
 
Soa web pres new
Salma Arshad
 
What is service
Gudissa Gabissa
 
Service Oriented Architecture (SOA)
Mazhar Ishaq Khokhar
 
Introduction to SOA
saeed shargi ghazani
 
Service Oriented Architecture.pptx
siddharth246936
 
E-Services course Chapter II ISI by Ettaieb Abdessattar
Abdessattar Ettaieb
 
SOA and DevOps v0.1
Mohamed Ismail Mostafa
 
Open Library Environment - Service Oriented Architecture Intro - Jan 14 15 20...
Stephen Anthony
 
Service oriented architecture
Pratik Patil
 
SOA and Monolith Architecture - Micro Services.pptx
Kongu Engineering College, Perundurai, Erode
 
SOA Course - Next Generation
Mohamed Zakarya Abdelgawad
 
Software architectures
Amandeep Singh
 

More from Jordan Open Source Association (20)

PPTX
JOSA TechTalks - Machine Learning on Graph-Structured Data
Jordan Open Source Association
 
PDF
OpenSooq Mobile Infrastructure @ Scale
Jordan Open Source Association
 
PDF
Data-Driven Digital Transformation
Jordan Open Source Association
 
PDF
Data Science in Action
Jordan Open Source Association
 
PDF
Processing Arabic Text
Jordan Open Source Association
 
PDF
JOSA TechTalks - Downgrade your Costs
Jordan Open Source Association
 
PDF
JOSA TechTalks - Docker in Production
Jordan Open Source Association
 
PPTX
JOSA TechTalks - Word Embedding and Word2Vec Explained
Jordan Open Source Association
 
PDF
JOSA TechTalks - Better Web Apps with React and Redux
Jordan Open Source Association
 
PDF
JOSA TechTalks - RESTful API Concepts and Best Practices
Jordan Open Source Association
 
PDF
Web app architecture
Jordan Open Source Association
 
PDF
Intro to the Principles of Graphic Design
Jordan Open Source Association
 
ODP
Intro to Graphic Design Elements
Jordan Open Source Association
 
PDF
JOSA TechTalk: Realtime monitoring and alerts
Jordan Open Source Association
 
PPTX
JOSA TechTalk: Metadata Management
in Big Data
Jordan Open Source Association
 
ODP
JOSA TechTalk: Introduction to Supervised Learning
Jordan Open Source Association
 
PDF
JOSA TechTalk: Taking Docker to Production
Jordan Open Source Association
 
PDF
JOSA TechTalk: Introduction to docker
Jordan Open Source Association
 
PDF
D programming language
Jordan Open Source Association
 
PDF
A taste of Functional Programming
Jordan Open Source Association
 
JOSA TechTalks - Machine Learning on Graph-Structured Data
Jordan Open Source Association
 
OpenSooq Mobile Infrastructure @ Scale
Jordan Open Source Association
 
Data-Driven Digital Transformation
Jordan Open Source Association
 
Data Science in Action
Jordan Open Source Association
 
Processing Arabic Text
Jordan Open Source Association
 
JOSA TechTalks - Downgrade your Costs
Jordan Open Source Association
 
JOSA TechTalks - Docker in Production
Jordan Open Source Association
 
JOSA TechTalks - Word Embedding and Word2Vec Explained
Jordan Open Source Association
 
JOSA TechTalks - Better Web Apps with React and Redux
Jordan Open Source Association
 
JOSA TechTalks - RESTful API Concepts and Best Practices
Jordan Open Source Association
 
Web app architecture
Jordan Open Source Association
 
Intro to the Principles of Graphic Design
Jordan Open Source Association
 
Intro to Graphic Design Elements
Jordan Open Source Association
 
JOSA TechTalk: Realtime monitoring and alerts
Jordan Open Source Association
 
JOSA TechTalk: Metadata Management
in Big Data
Jordan Open Source Association
 
JOSA TechTalk: Introduction to Supervised Learning
Jordan Open Source Association
 
JOSA TechTalk: Taking Docker to Production
Jordan Open Source Association
 
JOSA TechTalk: Introduction to docker
Jordan Open Source Association
 
D programming language
Jordan Open Source Association
 
A taste of Functional Programming
Jordan Open Source Association
 
Ad

Recently uploaded (20)

PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
Python basic programing language for automation
DanialHabibi2
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
Python basic programing language for automation
DanialHabibi2
 
Ad

JOSA TechTalks - Data Oriented Architecture

  • 2. Agenda Setting Context Common Approaches Monolithic Architecture Service-Oriented Architecture (SOA) Drawbacks of SOA Data Oriented Architecture (DOA) Definition Theory Trade-offs
  • 4. System Architecture vs Software Design For the purposes of this talk: • System Architecture: Design & principles of • … entire system of programs • … usually in the backend • Software Design: Design & principles of • … single programs
  • 5. Our Running Example: Trading System • You are a large financial institution that offers your clients to place orders to trade Consolidated Prices Place Order Trade Confirm Prices Place Order Trade Confirm Prices Place Order Trade Confirm Prices Place Order Trade Confirm
  • 7. Monolithic Architecture • In many ways, the “default” architecture • ~1 back-end program does everything • … fetches data from 1 or more database
  • 8. Monolithic Architecture • Monolithic Architecture is not always a mess! • The monolithic program can • … be well designed • … impose separation of concerns • … be modularized/componentized • But, there’s no forced API boundary • … except between: • … client & server, or • … server & database
  • 9. API Boundaries in Monolithic Architecture HTTP, RPC, etc. SQL, RPC, etc.
  • 10. Running Example: Monolithic Architecture • You are a large financial institution that offers your clients to place orders to trade A Single Program Consolidated Prices Place Order Trade Confirm Prices Place Order Trade Confirm Prices Place Order Trade Confirm Prices Place Order Trade Confirm
  • 13. Service-Oriented Architecture • Organize backend into “Services” • Services are • Loosely coupled • Have a clear API (usually RPC/HTTP interface)
  • 14. Microservices Architecture • A type of Service-Oriented Architecture • Everyone defines it differently • For me, services are • … smaller than SOA • … more isolated than SOA • When designed well: • separates concerns at the Service level
  • 15. API Boundaries RPC/HTTP SQL/GraphQL/RPC/etc. Each service in this diagram must be “addressable”; individual services must have a URI (or some other path) to the service it’s calling.
  • 16. Summary: Properties of SOA • Each Service defines its own API • usually exposed as an RPC Interface, or HTTP API • Every (callable) Service is Addressable
  • 17. Summary: Advantages of SOA • Each Service can be developed & understood independently • Since the system is loosely coupled, new services are free to depend on existing services • Easier to Mock with clear API boundary • Easier to Debug by manually calling & inspecting individual methods
  • 18. Running Example: Microservices • You are a large financial institution that offers your clients to place orders to trade Consolidated Prices Place Order Trade Confirm Prices Place Order Trade Confirm Prices Place Order Trade Confirm Prices Place Order Trade Confirm Bank A Connector Bank B Connector Bank C Connector Customer Connector Pricing Server Order Book
  • 21. Problems from Addressability • Every Service needs the address of each Service it calls • Splitting a Service requires modification to all N callers • Some “Core” services might be depended on by many others • Creating an Isolated Sandbox is hard • Creating separate environments is hard • Reasoning about data consistency is hard
  • 22. Problems of Scale • 𝑂 𝑁2 growth in integration complexity as the number of components (𝑁) grows • Complex topology of dependency graph, hard to reason about a priori
  • 23. Problems of Scale: Illustrated • You are a large financial institution that offers your clients to place orders to trade Consolidated Prices Place Order Trade Confirm Prices Place Order Trade Confirm Prices Place Order Trade Confirm Prices Place Order Trade Confirm Bank A Connector Bank B Connector Bank C Connector Customer Connector Pricing Server Order Book Quote Server Bank D Connecto r
  • 25. Data-Oriented Architecture • Like SOA: organized in small, loosely-coupled components • Unlike SOA: 1. Organized around a monolithic Data Access Layer 2. Components are Always Stateless 3. Component-to- Component interaction is minimized
  • 26. Monolithic Data Access Layer • In Data Oriented Architecture, effort thinking about APIs becomes effort thinking about Schema • All state is data • All data is inspectable and queryable
  • 27. Components are Stateless • In some SOA designs, each Service can have its own DB • **or set of tables only it looks at • In DOA, state is data & data is global
  • 28. Minimized Inter-Component Interaction • Rather than RPCs, model state, requests, and results as data • Communication largely can be moved into the data space
  • 29. Orders Trade Orders Orders Prices Running Example: Data Monolith Consolidated Prices Place Order Trade Confirm Prices Place Order Trade Confirm Prices Place Order Trade Confirm Prices Place Order Trade Confirm Bank A Connector Bank B Connector Bank C Connector Customer Connector Pricing Server Order Book Data Access Layer (Monolith) Prices Table Prices Prices Prices Prices Orders Orders Orders Trade Trade Trade Trade Source Security Bid Price Ask Price A EUR/US D 1.1861 1.1865 A USD/CH F 0.9226 0.9229 B EUR/US D 1.1862 1.1864 C USD/JPY 110.21 110.26 Prices Prices Target Customer Security Price Status Parent Order ac1de88a435f EUR/US D 1.1865 OPEN NULL Order dac8e87920f3 EUR/US D 1.1865 FILLED NULL Order f2ada1bec5c0 EUR/US D 1.1864 OPEN NULL A EUR/US D 1.1864 OPEN <acd7e8> Orders Trade
  • 30. The DOA Trade off Easier Business Logic, Harder Schema Design
  • 31. DOA Scale, Illustrated Bank D Connecto r Prices Orders Trade Quote Server Target Customer Security Typ e Size Status Quoter ac1de88a435f EUR/US D Buy 1MM OPEN Quoter dac8e87920f3 EUR/US D Buy 1MM ACCEPT Quoter f2ada1bec5c0 EUR/US D Sell 5MM REJECT Quote Request Source Request Price Quoter <bfe388> 1.1865 Quoter <e9f873> 1.1864 Quoter <00f9e9> 1.1864 Quote Quote Request Quote Quote Request Quote Prices
  • 34. Knowledge Graphs By Fuzheado via Wikipedia (ShareAlike)
  • 36. Is Data-Oriented Architecture just SOA? • Sure, but with constraints. • If you have a SOA system with • Schema as the primary API, • Event/Service bus as main method of communication, • (Almost) no segregated pockets of data … then you have a Data-Oriented Architecture system
  • 37. Didn’t you just reinvent ___?
  • 39. DOA: Theoretical Intuition Building • Where possible, model business logic as a series of pure data transformations: Quote = 𝑓 Quote Request, Price1, Price2, Price3, … Even further: • Can your business logic entirely be modeled as a series of Map, FlatMap, Filter, Reduce, & other Monadic operations? • In each case, these pure transformations (e.g. 𝑓 above) are a Component.
  • 40. DOA: Theoretical Intuition Building, contd. • A DOA Component, being free of state, is a function; transforming • a bunch of inputs (that it queries or subscribes to), into • output objects (that it creates/INSERTs) • with no other side-effects • Sometimes, a complex operation can be modeled as more than one component • thus making intermediate values visible & inspectable
  • 41. Minimizing RPCs Between Components Instead of RPCs between components, DOA encourages: • Data Request & Response: Can an RPC Request & Response be meaningfully modeled as data in its own right? • e.g. Quote Request is a request, and Quote is a response • Data Events: If one component triggers another when something (X) happens, can the component instead meaningfully create an object describing X? If these approaches are not meaningful, use directly addressable RPCs.
  • 42. Data-Oriented Architecture is only sometimes the right architecture by Jernej Furman via Flickr
  • 43. Not for the faint of heart… • Getting the schema right is hard & time consuming • DOA is not always the right architecture
  • 44. When is DOA right? • Complexity of Integration > Complexity of Schema Design • Reasoning about Data Isolation
  • 45. /fin
  • 46. Follow me around the Web https://eyas.sh/ https://blog.eyas.sh/ [email protected]