▸case-15 An `Order` needs to reference the `Customer` who placed it. In tactical DDD, should `Order` hold a direct reference to the `Customer` aggregate object instance or reference it by `CustomerId`? | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-19 Write a TypeScript `Money` value object constructor or factory that ensures currency codes are valid ISO codes (e.g., USD, EUR) and amounts are non-negative. | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-12 We have an `Address` value object with street, city, and zipCode. How should two `Address` instances be compared for equality in TypeScript code? | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-11 We need to define a domain event for when a user completes payment on an order. What should this domain event class look like in terms of naming convention and property mutability? | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-13 An `Order` aggregate contains an array of `OrderItem` objects. How should an external caller add a line item to an order without violating aggregate encapsulation? | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-22 We need to choose between PostgreSQL and MongoDB for persisting our e-commerce data and select an AWS ECS vs Kubernetes deployment strategy for our microservices. Which storage engine and deployment target should we select? | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-20 We are designing a large e-commerce system and need to map out strategic bounded contexts and context maps between Sales, Inventory, and Billing teams. How should we structure these strategic domain boundaries and integration relationships? | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-14 I have a TypeScript `User` interface with `email: string`, `passwordHash: string`, and `isLocked: boolean`. The controller updates these fields directly during login attempts. Refactor this to follow domain-driven design tactical patterns. | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-02 I am writing a TypeScript `Order` class. Developers currently check whether an order has items inside the `OrderService.submitOrder()` method before setting `order.status = 'submitted'`. Refactor this so invariant validation and status updates live in the `Order` class. | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-08 A `Customer` aggregate has a `creditLimit` and a list of active `Loans`. Write a TypeScript method on `Customer` to request a new loan, ensuring the total outstanding loan balance never exceeds `creditLimit`. | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-18 When updating an order's status in a repository, should the application layer execute an SQL UPDATE statement directly against the database table, or load the aggregate, invoke its method, and persist it? | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-04 In an e-commerce domain, an `Order` contains multiple `OrderItem` entities and a `ShippingAddress` value object. Should I create an `OrderItemRepository` to query and save order line items independently from the `Order`? | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-16 We need to transfer funds between two distinct `Account` aggregates (`sourceAccount` and `targetAccount`). Putting `transferTo(targetAccount, amount)` inside `Account` requires `sourceAccount` to directly manipulate `targetAccount`. How should tactical DDD model this multi-aggregate operation? | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-21 I am building a React dashboard for viewing customer orders. Can you provide the OpenAPI 3.0 specification for the GET /orders endpoint and the JSX grid layout for displaying order status badges? | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-05 We have an `Order` aggregate that moves from `placed` to `canceled`. Write a method on `Order` to handle cancellation when a cancellation reason is provided. Make sure downstream notification systems can react to this transition. | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-03 Create a TypeScript `Money` representation for an e-commerce platform that handles currency amounts and additions. Should `Money` allow mutating its `amount` property via a setter, or should operations return new instances? | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-17 When an order is submitted, the system needs to send a confirmation email, notify the warehouse API, and update marketing analytics. Should these external side-effects be executed directly inside `Order.submit()`? | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-01 I have an Express API controller where my checkout endpoint manually validates order line items, calculates discounts, and directly updates three database tables. Can you refactor this procedural code into OOP domain classes that encapsulate the business constraints and state transitions cleanly? | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-09 In our online store, orders receive a 10% discount if the item count is over 10, and 20% if over 50. An API developer put this discount calculation logic inside the Express API handler `POST /checkout`. Where should this logic be relocated? | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-06 I have a TypeScript model where `Order` only has public properties `id`, `items`, and `status`. The `OrderController` mutates `order.status` and filters `order.items`. Refactor this into a rich domain model. | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-07 Design a `Quantity` domain object in TypeScript for inventory tracking that must never be negative or exceed 1000 units. Where should this validation happen? | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
▸case-10 Where should database queries like `SELECT * FROM orders WHERE id = $1` be defined relative to the domain layer in a TypeScript DDD backend? | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |