Identify and categorise constraints, test whether they are genuine, record them clearly, use them to narrow design options, design effectively within them, and challenge constraints that are really preferences
A constraint is a fixed boundary on the solution that the design team cannot change on its own: a mandated platform, a regulation, a budget, a deadline, an existing system that must be integrated, or the skills of the teams available. Unlike requirements, constraints are not goals to optimise — they remove options from the solution space.
Figure 1 — Types of constraints
Figure 2 — Requirement vs constraint
Vocabulary
Meaning
Hard constraint
Legally or contractually fixed
Soft constraint
Organisational choice that could change at a cost
Conway's law
Systems mirror communication structures
Solution space
Set of viable designs
Table 1 — Terms
2Why It Exists
Figure 3 — Design options remaining after constraints
Ignoring constraints
Consequence
Designing a multi-cloud system when AWS is mandated
NovaBank core banking via MQ only; ShopNow order service is system of record
Regulatory
RBI data localisation; PCI DSS for card data; DPDP
Organisational
Tracking built by one team of 7; platform team provides EKS
Financial
Tracking run cost ≤ ₹15 L/month
Time
Live before Diwali sale; change freeze two weeks before
Integration
Carriers send webhooks in heterogeneous formats; some only SFTP files
Physical
Mobile users on 4G with high latency variance
Table 3 — Categories
4How It Works Internally — From Constraints to Options
Constraint
Options eliminated
Options remaining
AWS only
GCP Spanner, Azure Cosmos DB
DynamoDB, Aurora, Keyspaces
India residency
Global tables outside India
ap-south-1/2
One team of 7
Many microservices
One service + workers
₹15 L/month
Over-provisioned clusters
Serverless/on-demand + cache
Diwali deadline
Custom stream processing framework
Managed MSK + Spring Kafka
Table 4 — Narrowing the space
4ADeep Dive — Real or Negotiable?
Question
Purpose
Who imposed it?
Authority and reason
What happens if we break it?
Legal risk vs inconvenience
Is it time-bound?
Freeze, licence renewal
What would change it?
Cost/benefit case
Example
"Must use Oracle" → licence expiring next year → negotiable
Table 5 — Challenge respectfully
4BDeep Dive — Organisational Constraints and Conway's Law
Constraint
Design implication
Few teams
Fewer, larger deployables
Teams by domain
Service boundaries per domain
Platform team exists
Use paved road (EKS, pipelines)
Skill gaps (e.g. Kafka)
Managed services, training, simpler patterns
Table 6 — Structure shapes systems
4CDeep Dive — Regulatory Constraints
Rule
Impact
Data localisation (RBI)
Region choice, replication targets
PCI DSS
Tokenisation, isolated CDE
Retention mandates
Storage tiers, deletion jobs
DPDP
Consent, minimisation, deletion
Audit requirements
Immutable logs
Table 7 — Compliance boundaries (Volume I 1.4)
4DDeep Dive — Working Creatively Within Constraints
Constraint
Creative response
Core banking only via MQ
Async request/reply with correlation IDs; read model from CDC
Carriers send files
Ingest via S3 events into same pipeline
Tight budget
Cache aggressively; on-demand capacity; Graviton
Short deadline
Buy/managed services; narrow v1 scope
Table 8 — Constraints spark design
4EDeep Dive — Documenting Constraints
Field
Example
ID
CON-REG-01
Statement
Customer data must remain in India
Source
RBI directions / legal
Type
Hard
Impact
Regions ap-south-1/2 only
Review
Annually
Table 9 — Constraint register
5APIs / Features / Syntax
YAML
# Constraint register (architecture repo)- id: CON-TECH-01 statement: "Services use Java 25 + Spring Boot 4 on EKS" source: platform standard type: soft impact: "language/runtime fixed; paved road available"- id: CON-REG-01 statement: "Customer personal data stored and processed in India" source: legal (DPDP, RBI for payments data) type: hard impact: "ap-south-1/ap-south-2 only; no replication abroad"- id: CON-ORG-01 statement: "One team of 7 engineers owns tracking" type: soft impact: "prefer one deployable + workers over many services"
JSON
// Enforcing a regulatory constraint in the platform: region lock SCP{ "Effect": "Deny", "NotAction": ["iam:*", "sts:*", "organizations:*", "cloudfront:*", "route53:*", "support:*"], "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": ["ap-south-1", "ap-south-2"] } }}
JAVA
// Integration constraint: core banking reachable only via MQ request/replypublic BalanceReply balance(String account) { String correlationId = UUID.randomUUID().toString(); jms.convertAndSend("CBS.BALANCE.REQ", new BalanceRequest(account), m -> { m.setJMSCorrelationID(correlationId);return m; });return (BalanceReply) jms.receiveSelectedAndConvert("CBS.BALANCE.REPLY", "JMSCorrelationID = '" + correlationId + "'"); // bounded by receive timeout}
6Practical Examples
6.1 Budget shaped the design
A ₹15 L/month budget ruled out a large always-on Cassandra cluster; DynamoDB on-demand plus Redis met the NFRs at a third of the cost.
6.2 Team size shaped boundaries
With one team of seven, ShopNow built tracking as one Spring Boot service plus two Kafka consumers instead of five microservices.
6.3 Negotiated constraint
"Must use the old Oracle reporting DB" turned out to be a preference; its licence ended in 11 months, so tracking reports went straight to Athena.
6.4 Worked example — hard vs soft
Constraint
Type
India residency
Hard
Spring Boot
Soft (standard)
Table 10 — Classify
6.5 Worked example — time constraint
Deadline
Impact
Diwali sale
Managed services, reduced scope
Table 11 — Scope trade-off
6.6 Worked example — integration constraint
Carrier
Interface
Carrier A
Webhooks
Carrier B
SFTP CSV every 15 min
Table 12 — Heterogeneous inputs
6.7 Worked example — interview whiteboard
Prompt
Answer outline
"What constraints do you look for in a design?"
"Technical (platforms, languages, existing systems), regulatory (residency, PCI, retention), organisational (teams, skills — Conway), financial (budget, licences), time (deadlines, freezes), integration (partner protocols), physical (network, devices). Classify hard vs soft, check source and flexibility, document in a register, use them to eliminate options, and design creatively within them; challenge preferences masquerading as constraints."
Table 13 — Structured answer
6.8 Worked example — PayGrid PCI constraint
Constraint
Design
PCI scope must stay small
Tokens outside CDE
Table 14 — Regulation-driven structure
6.9 Worked example — anti-patterns
Anti-pattern
Effect
Discovering constraints late
Rework
Treating preferences as fixed
Missed better options
Ignoring team constraints
Unoperable systems
Undocumented constraints
Repeated debates
Table 15 — Common mistakes
6.10 Worked example — latency constraint
Physics
Implication
Mumbai–Singapore ~60 ms RTT
Regional reads, not cross-region sync calls
Table 16 — Speed of light
6.11 Worked example — device constraint
Constraint
Design
Low-end Android devices
Small payloads, pagination
Table 17 — Client realities
6.12 Worked example — licence constraint
Constraint
Impact
Per-core licence of legacy product
Avoid scaling it horizontally
Table 18 — Cost structure
6.13 Worked example — skills constraint
Gap
Mitigation
No Kafka experience
Managed MSK + Spring Kafka + training
Table 19 — People constraints
6.14 Worked example — change freeze
Period
Rule
Diwali −14 days
No production changes except fixes
Table 20 — Delivery planning
6.15 Worked example — vendor constraint
Constraint
Design
SMS vendor rate limit 500/s
Queue notifications
Table 21 — External limits
6.16 Worked example — interview follow-ups
Follow-up
Answer
"Constraint vs requirement?"
Fixed boundary vs goal to optimise
"How do you challenge a constraint?"
Ask source, cost of breaking, alternatives
Table 22 — Common probes
6.17 Worked example — checklist
Item
✔
Categories reviewed
✔
Hard/soft classified
✔
Sources recorded
✔
Options narrowed
✔
Register maintained
✔
Table 23 — Constraints baseline
6.18 Worked example — data size constraint
Limit
Design
DynamoDB 400 KB item limit
Store large payloads in S3
Table 24 — Technology limits
6.19 Worked example — API quota constraint
Limit
Design
Carrier API 10 req/s
Batch polling, backoff
Table 25 — Partner limits
6.20 Worked example — security constraint
Constraint
Design
No internet egress from data subnets
VPC endpoints
Table 26 — Platform policies
6.21 Worked example — interview scenario
Question
Answer
"Assume you must use a relational DB — design tracking"
Partitioning, read replicas, cache; still meet NFRs
Table 27 — Designing within limits
6.22 Worked example — constraints evolve
Year
Change
Year 2
GCC expansion adds UAE residency
Table 28 — Revisit register
6.23 Worked example — environmental constraint
Constraint
Design
Branch networks with limited bandwidth
Compressed payloads, offline mode
Table 29 — Kavach branches
6.24 Worked example — contractual constraint
Contract
Impact
SLA with marketplace sellers
Status freshness targets
Table 30 — Business obligations
6.25 Worked example — constraint conflicts
Conflict
Resolution
Deadline vs security review
Scope reduction, not skipping review
Table 31 — Priorities
6.26 Worked example — communication
Practice
Detail
Constraints slide in design reviews
Shared understanding
Table 32 — Transparency
7Common Problems & Mistakes
Mistake
Fix
Late discovery
Ask early
Preferences as constraints
Challenge
Ignoring org constraints
Conway
Undocumented
Register
Table 33 — Mistakes and fixes
Most constraint mistakes come from timing and honesty rather than ignorance. Constraints discovered after the high-level design is agreed, such as a residency rule raised by legal in the security review, force rework that a ten-minute question at kick-off would have avoided. Preferences are routinely dressed up as constraints: "we always use Oracle" or "the platform team only supports REST" may be habits that nobody has re-examined, and accepting them unchallenged rules out better options. Organisational constraints are the most often ignored, so a team of seven inherits a design that needs twelve services and a dedicated operations group. Finally, constraints that live only in someone's head are re-argued in every design review because nobody can point to the source, owner or review date.
8Performance & Production Considerations
Consideration
Practice
Enforce hard constraints automatically
SCPs, policies
Review soft constraints
Periodically
Track constraint-driven risks
Risk register
Table 34 — Operating constraints
Constraints matter in production because they are only real if something enforces them. Hard constraints should be turned into platform controls that make violation impossible or loud: a region-lock service control policy for residency, AWS Config rules and budget alarms for cost ceilings, admission policies that reject images outside the approved runtime, and pipeline checks for licensed components. Soft constraints change over time, so review the register on a fixed cadence and at triggers such as a licence renewal, a team change or a new market, and retire entries that no longer apply. Each constraint that forces a compromise, for example accepting higher latency because data cannot leave India, should have a matching entry in the risk register with an owner and a monitoring signal.
9Architecture & Design Considerations
Guideline
Detail
Discover early
Clarifying questions
Classify and document
Register
Use to narrow options
Simplify decisions
Table 35 — Design guidance
10Interview Questions & Answers
Q1BasicConcept
What is a constraint?
A constraint is a fixed boundary on the solution that the design team cannot change by itself. It might be a mandated platform such as AWS only, a regulation such as RBI data localisation, a budget ceiling, a hard deadline like a Diwali sale, an existing system that must be integrated, or the size and skills of the available teams. The important point is that a constraint is imposed from outside the design: someone with authority set it, and changing it needs their agreement and usually a cost. Because constraints remove options rather than describe goals, identifying them early tells you which parts of the solution space are not worth exploring.
Q2BasicConcept
Give constraint categories.
The usual categories are technical, regulatory, organisational, financial, time, integration and physical. Technical constraints include the mandated language, runtime, cloud and existing systems of record, such as Java 25 with Spring Boot 4 on EKS. Regulatory and legal ones cover data residency, PCI DSS, DPDP consent and retention rules. Organisational constraints are about team count, size, skills and structure, where Conway's law applies. Financial means run budgets and licence models; time means deadlines and change freezes. Integration covers partner protocols and legacy interfaces, such as a carrier that only sends SFTP files. Physical constraints include network latency between regions, device capability and bandwidth at branches.
Q3IntermediateConcept
Constraint vs requirement?
A requirement is a goal the system should achieve, and the design is judged by how well it meets it; a constraint is a boundary the design must stay within, and it is either respected or broken. Requirements such as p99 latency under 300 milliseconds or 18,000 orders per second can be traded against each other and negotiated with stakeholders. A constraint such as customer data staying in India is not optimised at all: it simply removes options like replicating to Singapore. The distinction matters because teams waste effort trying to optimise constraints or, worse, treat negotiable requirements as fixed. A third category, assumptions, are beliefs that still need confirming.
Q4IntermediateConcept
What is Conway's law?
Conway's law observes that organisations design systems that mirror their own communication structures. If three teams build a compiler, you get a three-pass compiler; if one integration team owns every adapter, every integration flows through that team and its backlog. For architects, team structure is therefore a genuine constraint on what can be built and operated. A team of seven cannot sustain five independently deployed microservices with their own on-call, so ShopNow built tracking as one Spring Boot service with two Kafka consumers. The inverse Conway manoeuvre uses the law deliberately, reshaping team boundaries to match the service boundaries you want instead of letting the existing org chart dictate them.
Q5Senior EngineerScenario
How do you test if a constraint is real?
Ask four questions. Who imposed it, and with what authority: a regulator, a contract, a platform standard or one person's habit? What happens if we break it: legal penalty and lost licence, or only inconvenience and an uncomfortable conversation? Is it time-bound, such as a change freeze or a licence that expires? And what would it take to change it, meaning the cost and who must approve? The answers classify it as hard or soft. At ShopNow, "must use the old Oracle reporting database" turned out to be a preference tied to a licence ending in eleven months, so reports went to Athena instead. Challenge respectfully, with evidence, not as an argument.
Q6Senior EngineerConcept
How do constraints help design?
Constraints help by shrinking the solution space, which makes decisions faster and easier to justify. Each real constraint eliminates whole families of options: AWS only removes Spanner and Cosmos DB, India residency removes global tables outside ap-south-1 and ap-south-2, and a team of seven removes a design with many microservices. In ShopNow's tracking design they cut twenty-four candidate architectures to three before any detailed trade-off analysis started. They also push teams toward creative responses, such as treating carrier SFTP files as S3 events feeding the same pipeline as webhooks. A design that clearly traces each choice back to a constraint is also much easier to defend in reviews.
Q7Technical ArchitectDesign
How are hard constraints enforced?
Hard constraints should be enforced by the platform rather than by people remembering them. For data residency, an AWS Organizations service control policy denies any API call whose requested region is not ap-south-1 or ap-south-2, with exceptions only for global services such as IAM and Route 53. Cost ceilings become AWS Budgets alarms and tagging policies, runtime standards become admission controllers or pipeline checks that reject unapproved base images, and licence rules become dependency scanning in CI. Network constraints such as no internet egress from data subnets are enforced by routing and VPC endpoints. Automated enforcement turns a violation into an immediate, visible failure instead of a finding in next year's audit.
Q8Technical ArchitectTrade-off
How do team constraints shape architecture?
Team constraints shape architecture through deployable count, ownership and technology choice. Few teams favour fewer, larger deployables, such as a modular monolith or one service plus workers, because every independently deployed service needs owners, pipelines, dashboards and on-call. Teams organised by domain suggest service boundaries per domain, so ownership is clear and changes rarely need cross-team coordination. An existing platform team means using its paved road, such as EKS and standard pipelines, rather than inventing infrastructure. Skill gaps push toward managed services and simpler patterns, for example MSK with Spring Kafka plus training rather than a self-run cluster. Ignore these factors and you produce a system the organisation cannot operate.
Q9Solution ArchitectTricky
What's the risk of hidden constraints?
Hidden constraints are expensive because they surface late, when the design has been approved, built or even deployed. A residency rule found during a security review can force a region change and data migration; an undocumented partner protocol found during integration testing can break the delivery date; a licence that charges per core, discovered after go-live, can turn horizontal scaling into a cost explosion. The results are rework, missed deadlines, compliance failures and lost credibility with stakeholders. The mitigation is to ask about every category explicitly at the start, involve legal, security, finance and platform owners early, and treat an unexplained "we can't do that" as a constraint to investigate.
Q10Solution ArchitectDesign
How should constraints be documented?
Constraints belong in a constraint register kept with the architecture in version control, not in slides. Each entry has an ID such as CON-REG-01, a clear statement, its source and authority, its type as hard or soft, its impact on the design, an owner and a review date. Keeping it as YAML or Markdown beside the ADRs means changes are reviewed and history is visible. ADRs then cite the constraint IDs that drove each decision, so when a constraint changes you can find every affected decision quickly. The register should also be shown in design reviews and onboarding, and reviewed at least annually or when a trigger such as a licence renewal occurs.
Newsletter
Get new tutorials every week
New ArchitectMind tutorials and interview questions, once a week. No spam, unsubscribe anytime.
Your subscription could not be saved. Please try again.
Almost done! Check your inbox and click the confirmation link to complete your subscription.