Wow Documentation Map
Start with first success, then continue with the task in front of you.
30-Minute First-Success Target
Complete these confirmed gates in order:
- Create from wow-project-template.
- Confirm the selected Wow version.
- Pass the domain test.
- Start the server.
- Send a real HTTP command and inspect the command result.
- Load versioned sourced state.
See Getting Started for the complete steps and completion semantics.
The functional gates are verified; 30 minutes remains a target because first-time developer wall-clock completion has not been measured.
Continue Building
Continue from the three entry points: Domain Model, Commands, and Events and Collaboration. Then use Projection and Query for the read side.
Prepare for Production
Start with Production Best Practices, then verify Backup, Restore, and Replay, Application Testing, Observability, and Troubleshooting.
Look Up Exact Facts
Use Configuration Reference, Examples, and Ecosystem for exact facts. Use the API documentation in the top navigation for Kotlin and Java symbols and signatures.
Evaluate or Contribute by Role
Onboarding routes contributors, staff engineers, executives, and product managers by the decision they need to make; Articles explain specific trade-offs.
Continue by Task
| Task | Read first | Then read | Done when |
|---|---|---|---|
| Decide whether Wow fits | Introduction | Production Best Practices | You can explain the benefits, operating costs, and poor-fit cases |
| Run a first application | Getting Started | Configuration | Domain tests pass, a real command reaches SNAPSHOT, and state can be loaded |
| Add Wow to an existing Spring Boot service | Existing Project | Spring Boot Starter | KSP metadata, generated routes, command handling, and snapshot loading all work |
| Study a complete Kotlin application | Order and Cart | Application Testing | You can trace commands, events, state, sagas, projections, and restart recovery |
| Model an aggregate and invariants | Domain Model | Aggregate and Invariants | Commands emit domain events and replay produces verified state |
| Build application release gates | Application Testing | Production Best Practices | Domain, HTTP, real-adapter, recovery, and security-negative evidence exists |
| Evolve persisted events | Event Evolution | Event Sourcing | Upgrader registration, ordering, historical replay, and rollback have evidence |
| Expose writes and completion semantics | Commands | Completion Semantics | You can distinguish SENT, PROCESSED, SNAPSHOT, and PROJECTED |
| Build a query model | Projection | Query | The projection is retry-safe and idempotent, with a clear query boundary |
| Coordinate across aggregates | Events and Collaboration | Saga | Success, retry, and unrecoverable paths are tested |
| Choose messaging and storage | Module Dependencies | Extensions | Only the required backends and starter capabilities are included |
| Prepare for production | Production Best Practices | Backup, Restore, and Replay | Idempotency, recovery, capacity, alerts, and rollback have evidence |
| Diagnose a failure or hang | Troubleshooting | The relevant core or extension page | The failed stage is known instead of merely having a larger timeout |
| Migrate a system or version | Migration Guide | The selected migration path | Inventory, reconciliation, cutover, and rollback gates are complete |
Use Each Documentation Type for Its Job
- Guide explains why and how to complete a task.
- Reference provides exact configuration, examples, and ecosystem resources.
- API is available from the top navigation and provides Kotlin and Java symbols and signatures through Dokka.
- Onboarding provides role-specific paths for contributors, architects, executives, and product managers.
- Articles explain trade-offs through concrete problems; they do not replace API or configuration reference.
- Documentation Governance defines canonical locations, lifecycle, evidence, and cleanup rules.
Version and source of truth
Documentation explains the repository but does not replace it. If prose differs from the public contracts, configuration classes, tests, or release notes for the tag you selected, follow that version's source.