LIST

Model: 8 types of sagas

what if we simplify each to binary: we get 8 permutations (1) epic saga (2) fantasy fiction saga (3) fairy tale saga (4) parallel saga (5) phone tag saga (6) horror story saga (7) time travel saga (8) anthology saga transactional boundary Article: 8 fallacies of distributed computing 9 10 compensating updates always work (1) epic saga first attempt at saga error: compensating updates !...

July 27, 2022

Architecture: The Hard Parts - bounded contexts and access data I don’t own

Data Ownership Data Access Data Ownership the owner is the one who writes to the table Model_ 3 data ownership patterns (in microservice architecture) Data Access Model_ 4 data access patterns (in microservice architecture)

July 21, 2022

Architecture: The Hard Parts - sagas: distributed transaction in microservices

what if we simplify each to binary: we get 8 permutations (1) Sagas dimensions of change Model_ 8 types of sagas hybrid sagas (2) sharding example: concert tickets example: sysops experts (1) Sagas dimensions of change Any change to any of these 3 forces, changes everything… treat as binary for simplicity then we get: Model_ 8 types of sagas epic saga fantasy fiction saga fairy tale saga parallel saga phone tag saga horror story saga time travel saga anthology saga !...

July 21, 2022

Architecture: The Hard Parts - semantic vs implementation coupling

if the semantics of your problem change then everything else needs to change prevent implementation coupling, that makes your architecture brittle contracts: strict vs loose method calls “schema” serialized objects RPC remote procedure call graphql (aggregation framework, not a invocation framework) value-driven contracts json KVP key value pairs example: brittleness not brittle: changing the type of country, does not break the contract for wishlist support all versions forever?...

July 21, 2022

Architecture: The Hard Parts - service granularity

Model_ 5 service disintegrators Model_ 3 granularity integrators

July 21, 2022

Architecture: The Hard Parts - synchronous vs asynchronous communication

What is async? async implies events or messages Distinction_ events vs messages Why async? improves responsiveness (not performance - Distinction_ responsiveness vs performance) async usually works well in happy path, but get’s more complicated in the unhappy path… happy path -> works well unhappy path: eg.“comment uses a word that is not allowed” new user flow: send email? notification to user? automate correction censor that word *****

July 21, 2022

Architecture: The Hard Parts - workflow choreography vs orchestration

orchestration: conductor at musical orchestra choreography: dancers Orchestration single point of failure services depend on orchestrator lots of communication order placement needs to be highly available orchestrator needs to be highly available order placements needs to be highly available smaller orchestrator (vs Enterprise Service Bus) eg. Order Placement Orchestrator, Order Cancellation Orchestrator logic shifts to the orchestrator error handling becomes a design decision in the orchestrator? in the service?...

July 21, 2022

Course: Architecture: The Hard Parts - Neal Ford & Mark Richards

Architecture: The Hard Parts How do I determine the appropriate level of service granularity? service granularity How do I achieve high semantic coupling and low implementation coupling? semantic vs implementation coupling How do I create bounded contexts and access data I don’t own? bounded contexts and access data I don’t own How do I decide between synchronous versus asynchronous communication? synchronous vs asynchronous communication How do I choose between choreography and orchestration for my workflow?...

July 21, 2022

Course: ADSD - Intro to SOA

(free src: https://learn.particular.net/courses/take/SOA/lessons/1517272-it-ops-service ) Course_ Advanced Distributed System Design - Udi Dahan ToC SOA tenets Service example _) Q&A (no notes, not in free src) Services modelling: Workflows, boundaries and business capabilities UI composition and Branding service IT/Ops service related: Service Boundaries, SOA vs DDD - DDDEU2021 Session_ Service Boundaries - Tjen Wellens 1) SOA Tenets Microsoft original “tenets of SO” 1. autonomous 2. explicit boundaries 3. share contract & schema not class or type (or anything, or db) 4....

July 1, 2022

Model: 4+1 Architectural View Model

Views logical process development physical (aka deployment) +1 = scenarios (aka use cases) (src: Course_ ADSD - Intro to SOA)

July 1, 2022