Model an Enterprise Procurement Workflow
Transfer the course architecture into a business workflow with approvals, auditability, background work, and tenant boundaries.
What you are building
Deliverables
Work through it one observable step at a time
- 01
Write the procurement lifecycle as explicit states/transitions before designing tables.
- 02
List invariants such as received quantity not exceeding ordered quantity.
- 03
Model requisition, approval, purchase order, goods receipt, and invoice relationships.
- 04
Define approval authority and record every decision as audit evidence.
- 05
Use effective dates where business truth is time-dependent.
- 06
Design inventory movement as an append-oriented business event instead of silently overwriting stock history.
- 07
Use a database transaction plus outbox row for one reliable integration event.
- 08
Process the outbox with a retryable background worker and make the handler idempotent.
- 09
Add tenant keys and authorization rules to every query path.
- 10
Create a reporting read model without moving core invariants into reporting code.
- 11
Explain where you deliberately did not introduce microservices or extra infrastructure yet.