Skip to content
Ameen Abozaid
Planned lessonMID-025-L04

Life without cross-service joins

  • Lesson 4 of 6
  • Mid-level
On This Lesson 4 topics

This lesson is planned. The outline below lists the topics it will cover. The full lesson has not been published yet.

In this lesson

replace joins with three techniques.

Planned topics

  • API composition: call each service and combine results in a gateway or backend-for-frontend; fine for small result sets.
  • Events and local copies: keep a read-only copy of the fields you need, updated by events; it can be briefly stale.
  • Denormalize at write time: store a snapshot, e.g. product name and price in the order line.
  • Large reporting joins belong in a separate read model or analytics store.
  • Accept that each choice trades freshness, coupling, and cost.
Draft outline details

Demonstration

order history screen: orders stores productName and unitPrice snapshots, so no call to catalog is needed.

Check your understanding

Why snapshot price in the order line?

Show answer

The price at purchase time must not change, and it avoids a catalog call.

Practice

Apply this lesson with the module's lab, exercises and quiz.

Lab and exercises Quiz

Marking a lesson complete is optional and you can undo it any time. Your progress stays in this browser.

Continue to next lesson

Type to search levels, phases, modules and lessons.