Lab
Lab exercises
You go through each exercise in three steps: the simulator shows the problem, then the same scenario with the solution, and finally you try the change in your own project with a prompt for a coding agent.
Open the lab- 01Synchronous startFrontend → Mortgage Calculator API → database
- 02Calculator Event SourcingEvents as the source of truth, state = fold(events)
- 03Projections and replayRead model from events, fixing a bug by recomputation
- 04CQRS: commands and queriesCommand → Write model → Event → Projection (Read model) → Query
- 05SnapshotShortening the load of a long stream
- 06Optimistic concurrencyTwo advisers, one calculation
- 07Event schema evolutionIncomeChanged v1 → v2 and upcasting
- 08Calculation V1 → V2 and determinismWhat is a promise to the client and what is a recalculation
- 09Application submissionDomain vs. integration events and the broker
- 10Risk and approvalRiskAssessmentCompleted/Rejected, MortgageApproved/Rejected, eventual consistency
- 11Customer Identity: retry and DLQCustomerIdentityCreationRequested → CustomerIdentityCreated
- 12Mortgage Account: duplicates and idempotencyMortgageAccountOpeningRequested → MortgageAccountOpened, Inbox
- 13Document Service: delivery orderContractGenerationRequested → ContractGenerated → ContractSigned
- 14Disbursement: offline service and backlogMortgageDisbursementRequested → MortgageDisbursed
- 15Transactional OutboxWrite and publish are not one transaction (dual write)
- 16Saga / Process ManagerThe whole process from approval to disbursement, compensation
- 17The whole system under pressureAll failures at once and all defences
Training for your team
Would you like this training for your team?
We run the training on your code and your domain problem. We agree the scope, dates and format with you.
Discuss the training