Module Quiz
Complete this quiz after finishing all concept and practice pages. Save your answers before opening separate quiz calibration.
Current Module Questions
Question 1: The Three-Level Split
In one paragraph, distinguish business domain, subdomain, and bounded context. Give one thing each is NOT.
Question 2: Classify the Subdomain and Defend -- Conference Check-In
Conference Ticketing Co. runs the 30-second QR-scan check-in process at the event venue. Classify the check-in subdomain (core / supporting / generic) and defend. Name the buy-vs-build answer, the staffing answer, and one signal that the classification might be wrong.
Question 3: Bounded Context Boundary Scenario #1 -- The "Customer" Conflict
At Parcel Shipping Co., four teams use the word customer: Sales (leads and quotes), Shipping (who booked the parcel), Billing (who pays the invoice), and Support (who filed a ticket). Engineers propose a single Customer microservice that all four consume. What is wrong with this proposal and what is the DDD-correct move?
Question 4: Bounded Context Boundary Scenario #2 -- Splitting Shipping
A Shipping context has grown large: it owns booking, label generation, driver dispatch for same-day, carrier integrations for ground and air, returns, and exception handling. Engineers propose splitting it along "domain object" lines: ShipmentService, LabelService, CarrierService, etc. Is this the right split? If not, what is?
Question 5: Design an Aggregate -- Event Ticket Hold
Design the TicketHold aggregate for a conference-ticketing checkout. Requirements: a hold reserves up to 8 tickets of one type for 10 minutes while the user pays; if the user commits, it becomes an Order; if the user abandons, the hold releases tickets back to inventory; invariants: at most 8 tickets per hold; cannot extend beyond 10 minutes; once committed, immutable. Produce the aggregate sketch and name its invariants.
Question 6: Design a Domain Event -- PaymentCaptured
Design the internal domain event and the integration event for "payment captured" in a conference-ticketing payments context. Show fields, versioning, and one field you intentionally keep out of the integration event.
Question 7: EventStorming -- Name the Sticky
For each description below, name the sticky-note color/kind:
- "Carrier Gateway" (a system we do not own).
- "Whenever
ShipmentBookedand service is SAMEDAY, assign a same-day driver." - "CarrierAssigned."
- "AssignCarrier."
- "Carrier Capacity Dashboard -- shown to dispatchers before assignment."
- "Who owns cancellation policy?"
Question 8: Anticorruption Layer vs Open Host Service
A legacy system returns responses like <cOntrAct><cst_num>12345</cst_num>...</cOntrAct>. A new Pricing context consumes it. A different team exposes Pricing's own public API to 7 downstream consumers. Which edge needs an ACL, which needs an OHS, and why?
Question 9: Transactional Boundary Rule
An engineer writes: "In place_order, I load the Order aggregate and the Inventory aggregate, decrement inventory, save both, and commit one transaction." State what is wrong and how to fix it.
Question 10: Repository Anti-Patterns
A ShipmentRepository grows these methods: find_all(filters), bulk_update_status(ids, status), mark_delivered(id), aggregate_by_origin_country(). Identify the anti-patterns and propose fixes.
Question 11: Bounded Context Boundary Scenario #3 -- "We Have Microservices"
A team has 14 microservices. Code audit reveals: 3 services write to the same customer table; 2 services share a shared-model library with mutable domain classes; 6 services must be deployed in lockstep during each release. Does this team have bounded contexts? What is the real architecture?
Question 12: CQRS Judgment Call
Three contexts each propose adopting CQRS: (a) Billing where invoices are generated once and read daily by accountants; (b) Tracking where dozens of scan events per parcel feed customer pages and ops dashboards; (c) Pricing where a rate snapshot is published weekly and read on every quote. Which contexts benefit from CQRS and why?
Question 13: Event Sourcing Judgment Call
Two contexts propose event sourcing: (a) Returns where each return goes through 5-15 status events and audits are frequent; (b) Notifications where the system sends emails and SMS and the only state is "has this been sent yet?" Which fits event sourcing, and what warning would you give the team that chooses it?
Question 14: Architecture-to-Context Alignment
A 25-engineer company has 6 bounded contexts and 22 microservices. Three teams share ownership of two of the services. One database is shared by two contexts. Name the three most urgent alignment fixes in priority order and the reasoning.
Question 15: Context Evolution
Parcel Shipping has run for 4 years with contexts Pricing, Shipping, Tracking, Billing, Support. Tracking has gradually absorbed ETA prediction, dispatch, driver routing, and proactive customer notifications. The team says they keep stepping on each other. What evolution is required and how do you manage it?
Interleaved Review Questions
Prior Module Question 1 (S7M1: Architecture styles and trade-offs)
How does the choice between modular monolith and microservices relate to bounded-context alignment?
Prior Module Question 2 (S7M4: API Design and Contract Evolution)
How does the bounded-context model inform where API boundaries go and how APIs evolve?
Prior Module Question 3 (S5M3: Transactions and isolation levels)
An engineer argues, "we don't need aggregates because we have SERIALIZABLE transactions." What is wrong with this argument?
Prior Module Question 4 (S6M2: Distributed consensus)
Why can't a domain event be "committed" across two bounded contexts atomically?
Prior Module Question 5 (S7M5: Architecture Decision Records)
A team decides to extract Dispatch from Shipping. What should the ADR capture beyond "we are extracting Dispatch"?
Self-Assessment and Remediation
Mastery Level (90-100% correct): Retrieval is strong. Advancement still requires every module and semester evidence gate; this score alone is insufficient.
Proficient Level (75-89% correct): Re-read the concept pages matching your missed questions. Re-run Kata 2 (draw a context map) or Kata 3 (design an aggregate). Likely weakness: strategic (cluster 1-2) or tactical (cluster 4) -- the quiz is structured so the weakness is easy to locate.
Developing Level (60-74% correct): Rework Clusters 2 and 4 from scratch. Redo Practice 2 (Context Mapping Workshop) and Practice 4 Kata 3 (Checkout Aggregate). Expect the weakness to be: confusing subdomain with context, over-sizing aggregates, or mistaking microservices for bounded contexts.
Insufficient Level (<60% correct): Restart from Cluster 1 Concept 1. The most likely issue is treating bounded contexts as "services" or aggregates as "database entities." Until "what language is spoken here?" and "what invariant lives here?" are reflex questions, the rest of the module does not stick.
Progression boundary
Quiz performance calibrates retrieval and reasoning. It does not replace runnable work, changed-case transfer, the module assessment or required semester evidence. Consult practice calibration for the additional independent cases.