-
Data distribution vs. pub/sub
- Data distribution is physical architecture
- Pub/sub is more focused on logical architecture
-
Udi's "service" is a logical entity vs. component physical entity (a piece of code running in one or more hosts)
-
Preferred interaction
-
Avoid crossing network boundaries within service boundaries
-
Service - technical authority for a business capability
-
Data distribution from a database to a frontend is likely within the same logical service boundary
-
For pub/sub communicating between differing business capabilities usually doesn't care about low latency
-
For data distribution, you often care about low latency
-
Saga's are owned by one and only one business capability
-
Transactions must need to be within the same logical service boundary
-
Systems are physical and can contain multiple logical service boundary business components deployed to them
-
Pub/sub masquerading as request/response
-
Microservice/autonomous component might be necessary because of load patterns
-
Outstanding question:
How do you deal with security concerns that make it difficult to avoid adding more network calls? For example, if you would like use a third party notification component to persist but can’t because the only correlation value contains PHI. Do you treat the PHI concern a separate business capability?
GistID: dc5362bc61699e902907c985d30e4b24