Distribution Boundaries

Deciding whether a boundary should be a process boundary, and designing it when it must be: what distribution actually costs (latency, serialisation, partial failure, lost atomicity, independent deployment), why a remote interface must be coarser than a local one, and choosing between synchronous call, messaging and replication. Use when a module is proposed for extraction into a service, when microservices are being adopted without a named driver, when a service call sits inside a transaction, when one request fans out to a dozen downstream calls, when two services share a database, when a "service" cannot be deployed without another being deployed too, when a synchronous chain has three or more hops, or when a distributed transaction is being designed. Does not cover the remote API's shape and payload types (remote-facade-and-dto), contract compatibility and versioning (rpc-and-api-contracts), transaction mechanics on one database (enterprise-transactions), or in-process layering (layering-and-boundaries).

robsonkades dc85ff9 4 files · 30.3 KB Updated

File contents

robsonkades/agent-skills/tree/main/skills/distribution-boundaries commit dc85ff94bb

Frequently asked questions

npx skillmds@latest add robsonkades/distribution-boundaries