Package-level declarations
Types
How the Sink keeps one aggregate type's commits.
What the Sink adds to the warehouse's own metadata of one of its tables, one row of wow_catalog (ClickHouseCatalog): who the table is of, by the Manifest and never by its name.
The wow_catalog table of a database: the Sink appends one row per table it keeps once it created or validated them, the warehouse's metadata (system.tables, system.columns) staying the base of the analytics catalog. A ReplacingMergeTree(written_at) ordered by (database, table, fingerprint): a row of the same content replaces the one before it, a changed one is appended beside it, so several rows of one table stand side by side during a rolling upgrade, and the catalog takes the one that matches the table's columns.
The Sink of one aggregate type into ClickHouse: each record one row of the schema's target table (ClickHouseSinkSchema.target, ClickHouseRows), from which ClickHouse's materialized views fill the current state and the events.
The ClickHouse Sink's options.
The ClickHouse Sink, type clickhouse: switched on by sink.enabled: true alone, since writing every event to a warehouse is a cost a service chooses; neither a client nor an endpoint switches it on. It writes every stream the service's Manifest (a resource of the application) publishes, through the application's Client when it has one, which it never closes, else through one of endpoint and the credentials, which it closes with the sinks (ClickHouseClients.clientOf); with neither, it fails the start naming both. Its settings, relative to its configuration (wow.clickhouse.*), are its options: the connection's, ddl (Ddl, auto by default; the host gives wow.ddl when it is not set), sink.batch-size, sink.deduplication-window, and each aggregate type's history.enabled and history.ttl under aggregates.<context>.<aggregate>, which the host gives from wow.aggregates.[<context>.<aggregate>].clickhouse.history.* (ClickHouseSinkOptions).
The ClickHouse Sinks of a service: sinkOf gives the ClickHouseSink of an aggregate the manifest declares, its tables in options' database, its flat view's columns from the aggregate's state schema in the Manifest's $defs (FlatColumns).
A column of a view: its name, its ClickHouse type as system.columns reads it, the expression it is, and the state's property it is read from.
The fingerprints of the flat view's definitions that writers created it with, oldest first, as its comment keeps them (wow-sink-flat:<fingerprint>,<fingerprint>): the last is the view's definition.