Modules and Artifacts
Every artifact a release publishes to Maven Central under the group me.ahoo.wow, generated from the build (abiProjects and publishedLibraries in build.gradle.kts) and each module's own description. Import the BOM and leave the versions out:
The Gradle plugins add platform("me.ahoo.wow:wow-bom:<their version>"), so implementation("me.ahoo.wow:wow-spring-boot") and the rest take no version (a build without them imports the BOM itself): me.ahoo.wow applies the compiler (KSP) to a domain module, me.ahoo.wow.api packages the contract into an api module, and me.ahoo.wow.service assembles the service's Manifest.
| Artifact | Directory | Holds |
|---|---|---|
me.ahoo.wow:wow-bom | bom/bom | The BOM: the versions of every artifact below, which a build imports as a platform. |
me.ahoo.wow:wow-dependencies | bom/dependencies | The versions of the libraries the Wow runtime puts on an application's class path (Jackson, the coroutines, kotlin-logging, SLF4J), which every published POM from wow-spi up imports; nothing else, so a module that depends on Wow keeps its own versions of everything Wow does not use. The contract modules (wow-annotations, wow-api, wow-query-api, wow-manifest) import none of it: a domain module that depends on them alone keeps its own versions of everything. The Spring Boot BOM comes with wow-spring-boot alone. |
me.ahoo.wow:wow-annotations | api/annotations | The stability markers of Wow's API (InternalWowApi, ExperimentalWowApi, WowSpi), which every Wow module but wow-cocache-api builds on; no dependencies |
me.ahoo.wow:wow-api | api/api | What domain code imports (the annotations, Decision, DecideScope, StateEvent, Scope), the value types of the wire contract (Command, CommandResult, WaitPlan) and the typed QueryApi |
me.ahoo.wow:wow-manifest | api/manifest | The contract every projection reads (REST, OpenAPI, clients, views, Skills); plain data |
me.ahoo.wow:wow-query-api | api/query-api | The query protocol (filters, sort, pagination, projection, aggregation) and the query field annotations, as plain data; nothing but the stability markers |
me.ahoo.wow:wow-spi | core/spi | The ports a backend implements (log, snapshots, checkpoints, leases, failure ledger, reservations, sinks) |
me.ahoo.wow:wow-kernel | core/kernel | The aggregate model and the decide, evolve, append loop |
me.ahoo.wow:wow-runtime | core/runtime | Gateway, router, cluster channel, executor, subscriptions, waits and lifecycle |
me.ahoo.wow:wow-reactor | core/reactor | Reactor adapters for the user programming model |
me.ahoo.wow:wow-query | query/query | The query engine over the snapshot, event and dataset models, and its backend SPI |
me.ahoo.wow:wow-postgres | backends/postgres | Log, snapshots, query, checkpoints, leases, failure ledger and reservations on PostgreSQL |
me.ahoo.wow:wow-mongo | backends/mongo | Log, snapshots, query, checkpoints, leases, failure ledger and reservations on MongoDB |
me.ahoo.wow:wow-kafka | backends/kafka | The Kafka transport, Kafka Sink and Kafka-sourced subscriptions |
me.ahoo.wow:wow-clickhouse | backends/clickhouse | The ClickHouse Sink and the dataset query backend |
me.ahoo.wow:wow-elasticsearch | backends/elasticsearch | Snapshots, their queries and the event search Sink on Elasticsearch |
me.ahoo.wow:wow-openapi | edge/openapi | The OpenAPI 3.1 document of a service's public routes, from its Manifest alone; plain data |
me.ahoo.wow:wow-http | edge/http | Routes materialized from the Manifest, problem+json, SSE and the signal entry |
me.ahoo.wow:wow-client | edge/client | The typed command and query clients of a peer's HTTP routes, on the JDK HttpClient |
me.ahoo.wow:wow-cosec | edge/cosec | The caller from CoSec's security context, and command authorization; experimental in 10.0: it follows CoSec 8's pre-release and may change within 10.x |
me.ahoo.wow:wow-observability | edge/observability | Tracing and Micrometer metrics on the core's observation seams |
me.ahoo.wow:wow-spring-boot | host/spring-boot | Auto-configuration by classpath; wiring only |
me.ahoo.wow:wow-cosid | extensions/cosid | CosId's generators as a node's aggregate id generators |
me.ahoo.wow:wow-cocache-api | extensions/cocache-api | The cache of another context's aggregate states that a domain injects (StateViewCache); no dependencies |
me.ahoo.wow:wow-cocache | extensions/cocache | Another context's aggregate states shared through CoCache, kept by the context that owns them and read as their generated views (StateViewCache) |
me.ahoo.wow:wow-spring-cloud | extensions/spring-cloud | A service's peers found through a Spring Cloud service registry, its nodes registered there with their internal ports, and a WowClient's endpoints through Spring Cloud LoadBalancer |
me.ahoo.wow:wow-models | extensions/models | Shared capability interfaces, EnumText and the reusable Tree aggregate |
me.ahoo.wow:wow-test | test/test-dsl | The aggregate and processor specs that run a domain on the kernel |
me.ahoo.wow:wow-test-query | test/test-query | A real in-memory QueryApi for the processor specs of the test DSL |
me.ahoo.wow:wow-test-spring-boot | test/test-spring-boot | A Wow Spring Boot application started for a test, on its own ports, with an HTTP client |
me.ahoo.wow:wow-tck | test/tck | The contract specs of the SPI ports that every backend runs |
me.ahoo.wow:wow-query-tck | query/query-tck | The contract specs every query backend runs (snapshots, events, datasets) |
me.ahoo.wow:wow-tck-containers | test/tck-containers | The Testcontainers the backends' integration tests run the TCK specs against |
me.ahoo.wow:wow-ops-api | platform/ops/ops-api | The commands, events and value types of the ops context |
me.ahoo.wow:wow-view-store-api | platform/view-store/view-store-api | The commands, events and value types of the view store context |
me.ahoo.wow:wow-compiler | compiler/compiler | Aggregate models and Manifest fragments from the annotations |
me.ahoo.wow:wow-gradle-plugin | compiler/gradle-plugin | Applies KSP and wow-compiler, and assembles the Manifest with Jackson-introspected schemas |
me.ahoo.wow:wow-migrate-data | migration/migrate-data | Imports 9.x event streams into the V10 log and verifies them |
me.ahoo.wow:wow-manifest-tools | compiler/manifest-tools | Completes Manifest fragments with Jackson-introspected schemas and merges them; run by wow-gradle-plugin in isolated workers, never at runtime |