模块与制品
每次发布以 me.ahoo.wow 为 group 发布到 Maven Central 的每个制品,由构建(build.gradle.kts 里的 abiProjects 与 publishedLibraries)与每个模块自己的 description 生成;说明取自源码,为英文。导入 BOM,其余制品不写版本:
Gradle 插件会加上 platform("me.ahoo.wow:wow-bom:<其版本>"),所以 implementation("me.ahoo.wow:wow-spring-boot") 等都不带版本(不用插件的构建自行导入 BOM):me.ahoo.wow 为领域模块接好编译器(KSP),me.ahoo.wow.api 把契约打进 api 模块,me.ahoo.wow.service 汇总服务的 Manifest。
| 制品 | 目录 | 内容 |
|---|---|---|
me.ahoo.wow:wow-bom | bom/bom | BOM:下列每个制品的版本,构建以 platform 导入。 |
me.ahoo.wow:wow-dependencies | bom/dependencies | Wow 运行时放到应用类路径上的那些库的版本(Jackson、协程、kotlin-logging、SLF4J),从 wow-spi 起每个发布的 POM 都导入它;除此之外不管别的,依赖 Wow 的模块对 Wow 不用的库保留自己的版本。契约模块(wow-annotations、wow-api、wow-query-api、wow-manifest)不导入它:只依赖它们的领域模块对所有库都保留自己的版本。Spring Boot BOM 只随 wow-spring-boot 而来。 |
me.ahoo.wow:wow-annotations | api/annotations | The stability markers of Wow's API (InternalWowApi, ExperimentalWowApi, WowSpi), which every Wow module 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 |