Bird
Raised Fist0
Microservicessystem_design~20 mins

Bounded context mapping in Microservices - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Bounded Context Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding Bounded Context Relationships

In microservices architecture, bounded contexts define clear boundaries for domain models. Which of the following best describes the Shared Kernel relationship between two bounded contexts?

AOne bounded context copies data from another asynchronously without coordination.
BOne bounded context completely depends on another and cannot function without it.
CBounded contexts are completely independent with no shared code or data.
DTwo teams share a small subset of the domain model and collaborate closely on it.
Attempts:
2 left
💡 Hint

Think about when two teams need to work together on a small part of the domain.

Architecture
intermediate
2:00remaining
Choosing the Right Integration Pattern

You have two bounded contexts: Order Management and Inventory. The Order Management context needs to know when inventory levels change but should not block its operations waiting for Inventory. Which integration pattern fits best?

AShared Database where both contexts read and write the same tables.
BDirect synchronous REST API calls from Order Management to Inventory.
CEvent-Driven Integration where Inventory publishes events asynchronously.
DBatch data export from Inventory to Order Management once a day.
Attempts:
2 left
💡 Hint

Consider loose coupling and asynchronous communication.

scaling
advanced
2:30remaining
Scaling Bounded Contexts Independently

You have two bounded contexts: Payments and Notifications. Payments have high traffic during sales, but Notifications have steady low traffic. What is the best approach to scale these contexts?

ADeploy each bounded context as separate microservices and scale them independently.
BDeploy both contexts on the same server and scale the server vertically.
CCombine both contexts into one service to simplify scaling.
DUse a shared database to balance load between contexts.
Attempts:
2 left
💡 Hint

Think about independent scaling and resource optimization.

tradeoff
advanced
2:30remaining
Tradeoffs in Context Mapping: Customer-Supplier vs. Conformist

Between two bounded contexts, Billing and Customer Support, Billing is the authoritative source of customer data. Customer Support must use Billing's data but cannot change it. Which relationship fits best and what is a key tradeoff?

AConformist: Customer Support depends on Billing's model and must adapt to its changes.
BCustomer-Supplier: Customer Support can modify Billing's data freely, risking inconsistency.
CShared Kernel: Both share and co-own the customer data model equally.
DSeparate Ways: Both contexts maintain independent customer data without coordination.
Attempts:
2 left
💡 Hint

Consider who controls the data and who must adapt.

estimation
expert
3:00remaining
Estimating Data Consistency Delay in Eventual Consistency

In a microservices system with bounded contexts communicating via asynchronous events, the Inventory service publishes stock updates. The Order service consumes these events to update availability. If Inventory publishes 1000 events per second and network latency plus processing adds 200ms delay per event, estimate the maximum delay before Order sees the latest stock update.

AAt least 1 second, due to event batching and processing overhead.
B200 milliseconds, because each event is processed immediately after network delay.
C200 seconds, because 1000 events per second cause a backlog of 200ms each.
DCannot estimate without knowing Order service processing speed.
Attempts:
2 left
💡 Hint

Focus on per-event delay, not total event volume backlog.

Practice

(1/5)
1. What is the main purpose of bounded context mapping in microservices architecture?
easy
A. To divide a system into clear, manageable parts with defined boundaries
B. To merge all services into a single large application
C. To increase the number of database tables in a system
D. To remove communication between different teams

Solution

  1. Step 1: Understand bounded context concept

    Bounded context means splitting a system into parts that have clear boundaries and responsibilities.
  2. Step 2: Identify the main goal of mapping

    Mapping helps teams work independently and reduces complexity by defining these boundaries.
  3. Final Answer:

    To divide a system into clear, manageable parts with defined boundaries -> Option A
  4. Quick Check:

    Bounded context = clear system parts [OK]
Hint: Bounded context means clear boundaries in system parts [OK]
Common Mistakes:
  • Thinking bounded context merges services
  • Confusing bounded context with database design
  • Assuming it removes team communication
2. Which of the following correctly represents a relationship type in bounded context mapping?
easy
A. Customer/Supplier means contexts never communicate
B. Shared Kernel means two contexts share a small part of their domain model
C. Open Host Service means one context copies all data from another context
D. Conformist means contexts ignore each other's models completely

Solution

  1. Step 1: Review relationship types in bounded context mapping

    Shared Kernel means two contexts share a small, common part of their domain model to stay consistent.
  2. Step 2: Check other options for correctness

    Open Host Service is about providing a stable interface, not copying all data. Customer/Supplier implies communication. Conformist means one context adapts to another's model, not ignoring it.
  3. Final Answer:

    Shared Kernel means two contexts share a small part of their domain model -> Option B
  4. Quick Check:

    Shared Kernel = shared small domain part [OK]
Hint: Shared Kernel means sharing a small model part [OK]
Common Mistakes:
  • Confusing Open Host Service with data copying
  • Thinking Customer/Supplier means no communication
  • Believing Conformist ignores other models
3. Given two bounded contexts A and B where A is the Customer and B is the Supplier, what is the expected interaction pattern?
medium
A. Context B provides services that Context A consumes
B. Context A adapts to B's model without changes
C. Contexts A and B share the same database schema
D. Contexts A and B never exchange data or messages

Solution

  1. Step 1: Understand Customer/Supplier relationship

    In this pattern, the Supplier context offers services or data that the Customer context uses.
  2. Step 2: Analyze options

    Context A adapts to B's model without changes describes Conformist, not Customer/Supplier. Contexts A and B share the same database schema is incorrect because sharing the same database schema breaks bounded context boundaries. Contexts A and B never exchange data or messages contradicts the relationship.
  3. Final Answer:

    Context B provides services that Context A consumes -> Option A
  4. Quick Check:

    Customer/Supplier = Supplier provides services [OK]
Hint: Supplier provides, Customer consumes services [OK]
Common Mistakes:
  • Mixing Customer/Supplier with Conformist
  • Assuming shared database schema
  • Thinking no data exchange happens
4. You have two bounded contexts with a Conformist relationship, but the Customer context is modifying the Supplier's domain model directly. What is the problem?
medium
A. The Conformist pattern requires sharing the same database schema
B. The Supplier context must always copy the Customer's model
C. Both contexts should merge into one to avoid conflicts
D. The Customer context should not change the Supplier's model; it should adapt to it

Solution

  1. Step 1: Understand Conformist relationship rules

    In Conformist, the Customer context adapts to the Supplier's model but does not modify it directly.
  2. Step 2: Identify the error in modifying Supplier's model

    Modifying the Supplier's model breaks the boundary and can cause inconsistencies.
  3. Final Answer:

    The Customer context should not change the Supplier's model; it should adapt to it -> Option D
  4. Quick Check:

    Conformist means adapt, not modify [OK]
Hint: Customer adapts Supplier model, does not modify it [OK]
Common Mistakes:
  • Thinking Supplier copies Customer model
  • Merging contexts unnecessarily
  • Assuming shared database schema is required
5. You are designing a large e-commerce system with multiple teams. How should you apply bounded context mapping to ensure scalability and team independence?
hard
A. Ignore context boundaries and let teams decide data sharing ad hoc
B. Combine all domains into one large context to simplify communication
C. Define clear bounded contexts for domains like Orders, Payments, and Inventory, and map their relationships explicitly
D. Allow teams to share a single database schema to avoid data duplication

Solution

  1. Step 1: Identify the need for clear domain boundaries

    Large systems benefit from dividing domains like Orders, Payments, and Inventory into separate bounded contexts.
  2. Step 2: Map relationships explicitly for team independence

    Explicit mapping helps teams understand dependencies and communicate properly without tight coupling.
  3. Step 3: Avoid combining domains or sharing schemas

    Combining domains or sharing schemas increases complexity and reduces scalability.
  4. Final Answer:

    Define clear bounded contexts for domains like Orders, Payments, and Inventory, and map their relationships explicitly -> Option C
  5. Quick Check:

    Clear contexts + explicit mapping = scalable teams [OK]
Hint: Clear contexts and explicit maps enable scalable teams [OK]
Common Mistakes:
  • Merging all domains into one context
  • Sharing a single database schema
  • Ignoring boundaries and ad hoc sharing