Architecture Review
Review the design as it will exist in a year, not the diagram as it looks today.
Method
- Draw the runtime: processes, stores, queues, and who can fail independently.
- Name the core domain objects and which module is allowed to mutate each.
- Check coupling: a change in A should not require a change in C unless they share a contract.
- Check data flow: every write has an owner, every read has a freshness story, every delete has a tombstone or cascade rule.
- Check failure: timeouts, retries, idempotency, poison messages, partial commits.
- Check operability: how you will debug this at 2am with logs and one metric.
Verdict
- Fit — this shape matches the problem.
- Fit with conditions — name the conditions.
- Wrong shape — name the smaller shape that would work.
Do not recommend a new framework, a rewrite, or a service split unless the current module cannot enforce its invariant. Prefer a boring module boundary over a clever one.