API 级别
已发布模块的每个公开声明都属于四个级别之一。ABI 转储(<module>/api/<module>.api)记录前三个级别的签名,所以对它们的改动会在审阅中显现。标记位于 wow-annotations 的 me.ahoo.wow.api.annotation,每个 Wow 制品都会带上它。
| 级别 | 标记 | 承诺 |
|---|---|---|
| 公开 | 无 | 10.x 的补丁版本保持二进制兼容。10.x 的次版本可能改动它,并在发布说明中列出每一处。 |
| 实验性 | @ExperimentalWowApi | 10.x 的次版本可能改动或移除它。使用时需要 @OptIn(ExperimentalWowApi::class),否则编译器给出警告。 |
| SPI | @WowSpi | 后端与传输实现的端口;次版本可能改动它。使用时需要 @OptIn(WowSpi::class),否则编译器给出警告。 |
| 内部 | @InternalWowApi | 只供 Wow 自己的模块使用,任何版本都可能改动或移除。应用无法选择使用(编译错误),ABI 转储也不包含它。 |
API 之外
API 只是升级要保持兼容的三样东西之一。在同一个主版本内,相邻的次版本可以并行运行:集群通道、等待信号、Kafka 信封、日志条目和租约,对前一个和后一个次版本都保持可读(升级部署)。服务自己的契约,即它的命令、事件、状态和错误码,由构建的兼容性检查对照提交的基线来保证(Manifest 与兼容)。跨主版本时,服务通过一次蓝绿切换迁移一次。
下面两张表由已发布模块的源码生成:带有该标记的公开声明。
实验性声明
| 声明 | 种类 | 模块 |
|---|---|---|
me.ahoo.wow.api.read.DatasetName | class | wow-api |
me.ahoo.wow.api.read.QueryModels.datasets | fun | wow-api |
me.ahoo.wow.api.read.RowQueries.aggregate | fun | wow-api |
me.ahoo.wow.api.read.datasets | fun | wow-api |
me.ahoo.wow.api.read.RowQueries | fun | wow-api |
me.ahoo.wow.api.query.AggregationExpression | interface | wow-query-api |
me.ahoo.wow.api.query.DateDiffUnit | class | wow-query-api |
me.ahoo.wow.api.query.fields | val | wow-query-api |
me.ahoo.wow.api.query.AggregationExpressionOperator | class | wow-query-api |
me.ahoo.wow.api.query.AggregationGroup | interface | wow-query-api |
me.ahoo.wow.api.query.inputExpression | val | wow-query-api |
me.ahoo.wow.api.query.AggregationDatePart | class | wow-query-api |
me.ahoo.wow.api.query.AggregationDateUnit | class | wow-query-api |
me.ahoo.wow.api.query.AggregationGroupScope | class | wow-query-api |
me.ahoo.wow.api.query.AggregationMetric | interface | wow-query-api |
me.ahoo.wow.api.query.AggregationFunction | class | wow-query-api |
me.ahoo.wow.api.query.AggregationQuery | class | wow-query-api |
me.ahoo.wow.api.query.AggregationElement | class | wow-query-api |
me.ahoo.wow.api.query.ComparisonOperator | class | wow-query-api |
me.ahoo.wow.api.query.DerivedExpression | interface | wow-query-api |
me.ahoo.wow.api.query.WindowFunction | class | wow-query-api |
me.ahoo.wow.api.query.RunningFunction | class | wow-query-api |
me.ahoo.wow.api.query.windowFunction | val | wow-query-api |
me.ahoo.wow.api.query.ExpressionFilter | class | wow-query-api |
me.ahoo.wow.api.query.HavingExpression | interface | wow-query-api |
me.ahoo.wow.api.query.dsl.AggregationQueryDsl | class | wow-query-api |
me.ahoo.wow.api.query.dsl.DerivedExpressionDsl | class | wow-query-api |
me.ahoo.wow.api.query.dsl.HavingDsl | class | wow-query-api |
me.ahoo.wow.api.query.dsl.aggregation | fun | wow-query-api |
me.ahoo.wow.api.query.dsl.FilterDsl.expression | fun | wow-query-api |
me.ahoo.wow.spi.peer.PeerDiscovery | interface | wow-spi |
me.ahoo.wow.spi.peer.PeerTargets | interface | wow-spi |
me.ahoo.wow.spi.peer.PeerDiscoveryConfig | class | wow-spi |
me.ahoo.wow.query.dataset.DatasetQueryGateway | interface | wow-query |
me.ahoo.wow.query.dataset.DefaultDatasetQueryGateway | class | wow-query |
me.ahoo.wow.query.dataset.DatasetQueryGateways | class | wow-query |
me.ahoo.wow.query.dataset.DatasetQueryModelProfile | class | wow-query |
me.ahoo.wow.query.dataset.DatasetVisibility | interface | wow-query |
me.ahoo.wow.query.dataset.QueryDatasetAccess | class | wow-query |
me.ahoo.wow.query.dataset.QueryDatasetScope | class | wow-query |
me.ahoo.wow.query.dataset.QueryDataset | class | wow-query |
me.ahoo.wow.query.dataset.QueryDatasetBuilder | class | wow-query |
me.ahoo.wow.query.dataset.QueryDatasetFiles | class | wow-query |
me.ahoo.wow.query.dataset.QueryDatasetChange | interface | wow-query |
me.ahoo.wow.query.dataset.QueryDatasetListener | interface | wow-query |
me.ahoo.wow.query.dataset.QueryDatasets | class | wow-query |
me.ahoo.wow.query.schema.DeclarationValue | interface | wow-query |
me.ahoo.wow.query.schema.QuerySchemaDeclaration | class | wow-query |
me.ahoo.wow.query.schema.QueryFieldDeclaration | class | wow-query |
me.ahoo.wow.query.schema.QueryFieldDeclarationBuilder | class | wow-query |
me.ahoo.wow.query.schema.QueryValueType | class | wow-query |
me.ahoo.wow.query.schema.QuerySemanticType | interface | wow-query |
me.ahoo.wow.query.schema.Temporal | interface | wow-query |
me.ahoo.wow.clickhouse.query.ClickHouseDatasetBindings | class | wow-clickhouse |
me.ahoo.wow.clickhouse.query.ClickHouseDatasetOptions | class | wow-clickhouse |
me.ahoo.wow.http.ops.parkedRoutes | fun | wow-http |
me.ahoo.wow.http.ops.OpsPaths | object | wow-http |
me.ahoo.wow.http.ops.subscriptionRoutes | fun | wow-http |
me.ahoo.wow.http.ops.WebhookNotifier | class | wow-http |
me.ahoo.wow.client.java.JavaQueryModels.datasets | fun | wow-client |
me.ahoo.wow.cosec.CoSecActions | object | wow-cosec |
me.ahoo.wow.cosec.CoSecCallerOptions | class | wow-cosec |
me.ahoo.wow.cosec.CoSecCallerResolver | class | wow-cosec |
me.ahoo.wow.cosec.CoSecCommandAuthorizer | class | wow-cosec |
me.ahoo.wow.cosec.CoSecServiceRouteAuthorizer | class | wow-cosec |
me.ahoo.wow.spring.boot.CoSecAutoConfiguration | class | wow-spring-boot |
me.ahoo.wow.spring.boot.CoSecRouteMapAutoConfiguration | class | wow-spring-boot |
me.ahoo.wow.spring.cloud.LoadBalancedEndpoints | class | wow-spring-cloud |
me.ahoo.wow.spring.cloud.SpringCloudPeerDiscovery | class | wow-spring-cloud |
me.ahoo.wow.spring.cloud.WowInstanceMetadata | object | wow-spring-cloud |
me.ahoo.wow.spring.cloud.WowRegistrationMetadata | class | wow-spring-cloud |
me.ahoo.wow.spring.cloud.WowSpringCloudAutoConfiguration | class | wow-spring-cloud |
SPI 声明
| 声明 | 种类 | 模块 |
|---|---|---|
me.ahoo.wow.api.read.TenantQueryApi | interface | wow-api |
me.ahoo.wow.spi.Ddl.apply | fun | wow-spi |
me.ahoo.wow.spi.Ddl.ensure | fun | wow-spi |
me.ahoo.wow.spi.VirtualThreads | object | wow-spi |
me.ahoo.wow.spi.call.OutgoingCall | class | wow-spi |
me.ahoo.wow.spi.call.CommandCaller | interface | wow-spi |
me.ahoo.wow.spi.config.ProviderOption | class | wow-spi |
me.ahoo.wow.spi.id.GlobalIdGenerator | interface | wow-spi |
me.ahoo.wow.spi.id.AggregateIdGenerator | interface | wow-spi |
me.ahoo.wow.spi.id.AggregateIdGeneratorSource | interface | wow-spi |
me.ahoo.wow.spi.ledger.FailureLedger | interface | wow-spi |
me.ahoo.wow.spi.ledger.ParkedAmendment | interface | wow-spi |
me.ahoo.wow.spi.log.AppendOutcome | interface | wow-spi |
me.ahoo.wow.spi.log.EventLog | interface | wow-spi |
me.ahoo.wow.spi.log.SnapshotTailReader | interface | wow-spi |
me.ahoo.wow.spi.log.TailPacer | class | wow-spi |
me.ahoo.wow.spi.log.TailPolling | class | wow-spi |
me.ahoo.wow.spi.observation.ObservedEvent | class | wow-spi |
me.ahoo.wow.spi.observation.Observer | interface | wow-spi |
me.ahoo.wow.spi.observation.Observation | interface | wow-spi |
me.ahoo.wow.spi.observation.TraceContext | class | wow-spi |
me.ahoo.wow.spi.peer.PeerDiscovery | interface | wow-spi |
me.ahoo.wow.spi.peer.PeerTargets | interface | wow-spi |
me.ahoo.wow.spi.peer.PeerDiscoveryConfig | class | wow-spi |
me.ahoo.wow.spi.reservation.ReservationStore | interface | wow-spi |
me.ahoo.wow.spi.reservation.ConfirmOutcome | interface | wow-spi |
me.ahoo.wow.spi.schema.EnsuredOnce | class | wow-spi |
me.ahoo.wow.spi.sink.Sink | interface | wow-spi |
me.ahoo.wow.spi.sink.SinkProvider | interface | wow-spi |
me.ahoo.wow.spi.sink.StreamSinks | interface | wow-spi |
me.ahoo.wow.spi.sink.SinkConfig | class | wow-spi |
me.ahoo.wow.spi.snapshot.SnapshotRebuildStore | interface | wow-spi |
me.ahoo.wow.spi.snapshot.SnapshotSaveOutcome | interface | wow-spi |
me.ahoo.wow.spi.snapshot.SnapshotStore | interface | wow-spi |
me.ahoo.wow.spi.store.Store | class | wow-spi |
me.ahoo.wow.spi.store.Opened | class | wow-spi |
me.ahoo.wow.spi.store.StoreConfig | class | wow-spi |
me.ahoo.wow.spi.store.StoreResources | interface | wow-spi |
me.ahoo.wow.spi.store.StorePool | interface | wow-spi |
me.ahoo.wow.spi.store.StoreProvider | interface | wow-spi |
me.ahoo.wow.spi.subscription.CheckpointStore | interface | wow-spi |
me.ahoo.wow.spi.subscription.FailureClassifier | interface | wow-spi |
me.ahoo.wow.spi.subscription.LeaseStore | interface | wow-spi |
me.ahoo.wow.spi.timer.TimerStore | interface | wow-spi |
me.ahoo.wow.spi.transport.SourceMessage | class | wow-spi |
me.ahoo.wow.spi.transport.PartitionOffsets | class | wow-spi |
me.ahoo.wow.spi.transport.PartitionedSource | interface | wow-spi |
me.ahoo.wow.spi.transport.TopicAdmin | interface | wow-spi |
me.ahoo.wow.spi.transport.TopicMessage | class | wow-spi |
me.ahoo.wow.spi.transport.TopicProducer | interface | wow-spi |
me.ahoo.wow.spi.transport.TopicTransportOptions | object | wow-spi |
me.ahoo.wow.spi.transport.TransportProvider | interface | wow-spi |
me.ahoo.wow.spi.transport.TopicTransport | interface | wow-spi |
me.ahoo.wow.spi.transport.TransportConfig | class | wow-spi |
me.ahoo.wow.query.backend.QueryBackend | interface | wow-query |
me.ahoo.wow.query.backend.QueryBindings | interface | wow-query |
me.ahoo.wow.query.backend.CachedQueryBindings | class | wow-query |
me.ahoo.wow.query.dataset.QueryDatasetProvider | interface | wow-query |
me.ahoo.wow.query.dataset.QueryDatasetConfig | class | wow-query |
me.ahoo.wow.query.schema.QueryStorageAdapter | interface | wow-query |
me.ahoo.wow.query.store.StoreQueries | interface | wow-query |
me.ahoo.wow.query.store.SnapshotQueries | interface | wow-query |
me.ahoo.wow.query.store.EventQueries | interface | wow-query |
me.ahoo.wow.query.store.QueryIndexReport | class | wow-query |
me.ahoo.wow.query.store.StoreQueryOptions | class | wow-query |