LIST

Distinction: events vs messages

Distinction: events vs messages

July 28, 2022

Distinction: responsiveness vs performance

Responsiveness time the user is waiting / blocked included: time for the response to return excluded: time continued in the background Performance time for all the work to be done included: time for the response to return time continued in the background excluded: /

July 28, 2022

Model: 3 data ownership patterns (in microservice architecture)

Model: Data ownership (in microservice architecture) the owner is the one who writes to the table (1) Pattern: Single Ownership (2) Pattern: Common Ownership solution: create a service around the shared table (3) Pattern: Joint Ownership solution 1: table split pattern solution 2: data domain solution 3: delegation (1) Pattern: Single ownership (data ownership in microservices) (2) Pattern: Common Ownership (data ownership in microservices) solution: create a service around the shared table eg....

July 28, 2022

Model: 3 granularity integrators

Granularity integrators (1) database transactions (2) data dependencies (3) workflow and choreography fault tolerance responsiveness and performance (Model_ 3 types of latency) reliability & data consistency (2) data dependencies axiom: service that writes data, owns it big ball of distributed mud (3) workflow and choreography a) fault tolerance dependency on other service over the network? network problems breaks your service (monolith did not have this problem) b) responsiveness and performance !...

July 28, 2022

Model: 4 data access patterns (in microservice architecture)

Model: Data access patterns (in microservice architecture) (1) Pattern: interservice communication (2) Pattern: data schema replication (3) Pattern: in-memory replicated cache (4) Pattern: data domain (1) Pattern: interservice communication (data access in microservices) latency network 60-300 ms security secure endpoint re-authorize if expired data query own db query other db (2) Pattern: data schema replication (data access in microservices) keep them in sync: synchronous / asyncronous transaction?...

July 28, 2022

Model: 5 service disintegrators

subjective: (1) service functionality: single responsibility measurable: (2) code volatility: how often does code change (3) scalability and throughput: scale/throughput, startup delay (4) fault tolerance: continue working if one part crashes (5) access control: separate sensitive data to a separate service (1) service functionality what is “single responsibility” is subjective… (2) code volatility (3) scalability and throughput scalability (requests / minute) startup time “mean time to startup (service)” !...

July 28, 2022

Model: 3 types of latency

(1) network latency the time to make a call over the network eg. it takes 200ms to call that service (2) security latency eg. your token expired and you need to re-authenticate (3) data latency eg. you need to query a database Total latency Total latency is the sum of these parts. eg. I need to call another microservice to get it’s data network latency - my microservice get’s a call security latency - my microservice authenticates the call data latency - my own database query network latency - call another service security latency - the other service verifies my token data latency - the other microservice queries it’s database

July 27, 2022

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