System partitioning separates what the system must do from how it is built. In this module you learned how to partition by domain (functional intent) and by technology (implementation choices), and how those decisions impact cost, performance, reliability, and iteration speed.
Artifact | Purpose / Outcome |
---|---|
Use cases / user stories | Capture user goals and success criteria; define boundaries of discrete features. |
Problem‑domain model | Identify core entities and relationships that the system manipulates (language shared with stakeholders). |
Interaction diagrams (sequence/collaboration) | Reveal message flow and responsibilities; surface hidden coupling and latency hotspots. |
Cohesion & coupling analysis | Group related use cases/features; minimize cross‑feature dependencies. |
Interface requirements | Describe how users and external systems interact with features (APIs, screens, events). |
Transaction definitions | Define atomic units of work and consistency needs (ACID vs. eventual, saga patterns). |
Data requirements | Clarify authoritative sources, reference data, and privacy/compliance constraints. |
Concern | Design Focus |
---|---|
User interface | Screens, devices, accessibility; server‑ vs. client‑rendering; offline behavior. |
Service & integration layer | APIs, domain services, gateways; sync vs. async; idempotency and back‑pressure. |
Communication | Protocols (HTTP/gRPC/MQ), contracts, versioning, observability of calls. |
Data persistence | Operational stores, analytics, caches; sharding/partition keys; consistency models. |
Platform/runtime | Deployment topology (monolith, modular, microservices); containers, serverless, edge. |
Security | AuthN/Z, secrets, data‑at‑rest/in‑transit protection, tenancy, compliance. |
Reliability | Redundancy, retries, circuit breakers, graceful degradation, disaster recovery RTO/RPO. |
Operability | Logging, tracing, metrics/SLOs, feature flags, rollout/rollback, cost visibility. |
Structural‑first: choose tech layers/components, then fit features into them. Fast to start, risk of accidental coupling.
Functional‑first: partition by capability, then assign to tech. Better change isolation and performance tuning; supports hybrid HW/SW when needed.
Continue with deployment topologies and runtime isolation patterns (monolith‑modular, microservices, serverless) and learn how partitioning choices affect scaling and operability in production.