Repository navigation
Release v19.7.0
Added
- The event-store dashboard, built from projections with composite keys rather than counting rows on demand, with per-namespace figures and drill-down, and key figures under each event store on the landing page (#3731)
- A declarative surface for kernel-owned projections - identified with a
$system.prefix, owned by the kernel rather than a client, and refused by replay, because replaying one rebuilds state the kernel keeps for itself ProjectionScope, so a read model can be built per namespace, once for the whole store, or both. ABothdeclaration lowers to two single-scope definitions, and a global one is keyed with the unset namespace- A statistics query surface over the new projections, and the Workbench screens that show it
Changed
- The job system is now
Cratis.Orleansrather than Chronicle's own. The local engine, its storage for MongoDB and SQL, and its specs are gone; what remains here are the job scenarios that are about Chronicle - Job storage is resolved through
IJobsStorage. The kernel asked for the concrete MongoDB type, which the container satisfied by building a second, unconfigured instance - grains wrote to one database and the kernel read from another, and reading an always-empty database does not throw. Six integration specs asserted job steps were empty and passed for the wrong reason - The kernel names its own assemblies for BSON serializer registration. Adopting the package's registration silently dropped every serializer the kernel ships, including the one that upgrades constraint definitions written before 16.12
- A development wipe tells the job system its database was emptied, so the tables it creates on resolution are made again
- A replay specification no longer depends on catching a transient job. A replay job is removed the moment it completes, and two events against a fast database finish before the first poll looks; the replay is verified from the rebuilt read model and the absence of a recommendation instead
Fixed
- Jobs could not be written on PostgreSQL at all: the state column is
jsonb, which refuses an implicit cast fromtext. Starting a job still reported success because the failure was inside the grain's write, so the kernel believed it had started work that never existed - a failed partition was never retried, and a redaction's replay never ran (fixed inCratis.Orleans1.10.1) - The SQL job storage shipped a context it could not create tables for, and the MongoDB one never registered the conventions its own queries assumed, so writes and reads disagreed on casing (fixed in
Cratis.Orleans1.6.1)
Notes
Depends on Cratis.Orleans 1.10.1. Every defect found along the way was fixed in the package rather than worked around here, and each one carries a specification there: SQL storage now runs in a real silo and, when one is available, against a real PostgreSQL.