Review Checklist

Review Checklist

Use this checklist when reviewing an Akka SDK pull request.

Architecture

  • [ ] Does the package structure reveal the business capability?
  • [ ] Do dependencies point inward: api -> application -> domain?
  • [ ] Can domain logic be tested without Akka?
  • [ ] Are framework details isolated to API/application layers?
  • [ ] Is there a clear owner for every durable state change?

Naming

  • [ ] Are component ids stable, unique, and business-named?
  • [ ] Are event type names stable and business-specific?
  • [ ] Do command methods use verbs that say what they do?
  • [ ] Are public routes named after resources or business actions?
  • [ ] Are constants searchable and domain-specific?

Endpoints

  • [ ] Is ACL/auth behavior visible?
  • [ ] Are request and response DTOs public contracts?
  • [ ] Does each endpoint delegate to one application operation?
  • [ ] Are expected failures translated into useful responses?
  • [ ] Is durable state kept out of endpoint fields?

Entities

  • [ ] Is emptyState() explicit where needed?
  • [ ] Are state objects immutable?
  • [ ] Are command handlers small and business-named?
  • [ ] Are read-only handlers actually read-only?
  • [ ] Are external side effects protected from duplicate execution?

Event Sourcing

  • [ ] Are events past-tense business facts?
  • [ ] Is command validation done before persisting events?
  • [ ] Are event handlers deterministic?
  • [ ] Are event payloads sufficient for replay?
  • [ ] Has event/schema compatibility been considered?

Workflows

  • [ ] Does the workflow model a real long-running process?
  • [ ] Are step names business-readable?
  • [ ] Are timeouts, retries, and waiting states explicit?
  • [ ] Is compensation modeled where needed?
  • [ ] Can operators inspect progress from state or notifications?

Views

  • [ ] Does the view name describe the query access pattern?
  • [ ] Is eventual consistency acceptable to callers?
  • [ ] Is the row model a deliberate projection?
  • [ ] Are table/query changes compatible or documented as migrations?
  • [ ] Are deletes handled intentionally?

Consumers

  • [ ] Is the handler idempotent?
  • [ ] Is duplicate detection based on a durable identity?
  • [ ] Are poison messages observable?
  • [ ] Are external side effects safe under retry?

Agents

  • [ ] Is the agent solving a genuinely non-deterministic problem?
  • [ ] Are prompts, tools, and session memory boundaries explicit?
  • [ ] Is model output validated before affecting durable state?
  • [ ] Are evaluation cases or deterministic boundary tests included?

Tests

  • [ ] Do changed domain rules have unit tests?
  • [ ] Do changed components have component tests?
  • [ ] Do changed public routes have endpoint tests or manual evidence?
  • [ ] Do workflow changes test failure paths?
  • [ ] Are tests specific enough to diagnose failures quickly?

Operations

  • [ ] Are important state transitions logged or queryable?
  • [ ] Are correlation ids preserved where useful?
  • [ ] Are component ids, routes, events, views, and topics treated as contracts?
  • [ ] Is local run/test documentation still accurate?