5 exercises on adjective–noun collocations from system design and software architecture: the fixed terms that appear in design documents, RFCs, and architecture review meetings.
Key architecture collocations in this set
distributed system — multi-node, networked; not "decentralised"
monolithic architecture — single deployable unit; not "centralised"
event-driven architecture (EDA) — producers + consumers via events
cloud-native — designed for cloud from day one; not "cloud-ready" or "cloud-first"
resilient design — absorbs and recovers from failures; not "fault-proof"
0 / 5 completed
1 / 5
An engineering blog post explains:
"We moved from a ___ system — where every service runs on separate nodes, communicates over the network, and can fail independently — to better handle scale."
Which adjective describes a system whose components run on multiple machines and communicate via a network?
Distributed system is the canonical term. A distributed system consists of multiple independent components (processes, nodes, services) that communicate over a network and coordinate to appear as a single coherent system to the user. Distributed systems face unique challenges: network partitions, clock skew, partial failures, and the CAP theorem.
Why the others fail:
decentralised system — refers to governance/control (no single authority), not the technical architecture of how components communicate. Blockchain is decentralised; a microservices cluster is distributed.
fragmented system — implies broken, disorganised; not a term of art
dispersed system — describes physical geography; not used as a technical architecture term
Common collocations:
distributed system design
distributed computing
distributed tracing (observability)
distributed database
2 / 5
A migration proposal describes a before state:
"In the original ___ architecture, all modules — user management, billing, reporting, and API — were bundled into a single deployable unit."
Which adjective describes a single-unit, all-in-one application architecture?
Monolithic architecture is the established term. A monolith is a software application where all components are combined into a single program, compiled together, and deployed as one unit. It contrasts with microservices architecture. Monoliths are not inherently bad — they are simpler to develop and deploy for small teams.
Why the others fail:
singular architecture — not a technical term in software design
unified architecture — not used in this sense; "unified" has different meanings in other contexts (Intel Unified Memory Architecture)
centralised architecture — describes where data or control resides, not whether the application is one unit
Common collocations:
monolithic application
monolith-to-microservices migration
modular monolith (a well-structured single deployment)
distributed monolith (an anti-pattern: split across nodes but tightly coupled)
3 / 5
A system design document describes a message-passing pattern:
"The new notification system uses an ___ architecture. Services emit events; subscribers react to them asynchronously without direct coupling."
Which adjective describes an architecture where components communicate via events rather than direct calls?
Event-driven architecture (EDA) is the canonical term. In an event-driven system, components (producers) emit events when something happens; other components (consumers) subscribe to those events and react. This decouples producers from consumers — neither needs to know about the other. Common event buses include Apache Kafka, RabbitMQ, AWS EventBridge, and NATS.
Why the others are close but non-standard:
reactive architecture — refers to the Reactive Manifesto (responsive, resilient, elastic, message-driven); overlaps but is broader than EDA
message-based architecture — descriptively accurate but not the canonical industry term
async architecture — informal; describes a property, not an established architectural style
Common collocations:
event-driven design
event-driven microservices
event sourcing (related pattern: store state as a sequence of events)
domain event
4 / 5
A cloud architect proposes:
"We should build this as a ___ application — it will use managed services, containers, and auto-scaling from day one rather than being retrofitted later."
Which compound adjective describes an application designed specifically to run in and exploit cloud infrastructure?
Cloud-native is the established term, defined by the Cloud Native Computing Foundation (CNCF). A cloud-native application is designed from the ground up to exploit cloud environments: it uses containers, microservices, dynamic orchestration (Kubernetes), and continuous delivery. The key idea is "born in the cloud" rather than "lifted and shifted."
The distinctions matter:
cloud-native — designed for cloud from inception; uses cloud-specific patterns (containers, serverless, managed services)
cloud-ready — capable of running in the cloud but not necessarily designed for it
cloud-first — a procurement/strategy term: "we prefer cloud solutions"; not an application architecture term
cloud-optimised — tuned for cloud efficiency; not the canonical design term
Common collocations:
cloud-native application
cloud-native architecture
CNCF landscape
cloud-native transformation
5 / 5
An incident review recommends:
"The new payment gateway must be ___ — it should continue operating in a degraded mode even when upstream credit card processor connections fail."
Which adjective describes a system that can withstand and recover from component failures?
Resilient design is the canonical term. Resilience in systems engineering means the ability to absorb disruption, adapt to changing conditions, and recover quickly from failures. A resilient system degrades gracefully rather than failing catastrophically. This is distinct from robustness (which implies strength against failure) and fault-tolerance (which implies operating despite failures).
Key nuances:
resilient — bounces back; can degrade gracefully and recover ✅
robust — strong against failure; but does not imply recovery or graceful degradation
durable — usually applied to data (durable storage = data survives crashes); not to system behaviour under load
fault-proof — implies no failures possible; hyperbolic and not used professionally