Tags give the ability to mark specific points in history as being important
-
v1.5.0
Release: ORM++ v1.5.0544d0ed1 · ·v1.5.0 — Read-Model beim Append, Nachprojektion, Schluesselgeber Anlass war ein Fehlerbild in der DNS-Editor-Beta: Speichern ueber einen fremden Regionsknoten ging verloren — mal mit Fehler, mal stillschweigend. Vier Aggregate standen im Event-Log, aber nie im Read-Model. Append schreibt die Read-Model-Zeile jetzt in DERSELBEN Transaktion. Der Zustand liegt nach Apply ohnehin im Speicher, es kostet einen Upsert — und WaitFor auf die eigene Position kehrt sofort zurueck, statt bis zu fuenf Sekunden auf einen Projektions-Worker zu warten, der die Lease womoeglich auf einem anderen Knoten haelt. Der Upsert ist nur vorwaerts (aggregate_seq), damit ein Worker, der zu seiner Lesezeit faltet, keinen neueren Stand ueberschreibt. Dazu holt der Worker beim ersten Durchlauf je Model nach, was im Hot-Log steht und im Read-Model fehlt oder zurueckliegt. Zweiter Befund derselben Runde: YugabyteDB bis 2024.2 kennt keine Advisory-Sperren und bricht mit pg_advisory_xact_lock die laufende Transaktion ab. Seit v1.4.1 waere dort JEDER Append gescheitert. Der Dialekt prueft das einmal beim Verbinden und bleibt ohne Sperre beim Wettlauf mit Erkennung — jetzt auch fuer SQLSTATE 40001, mit dem YB unter Snapshot-Isolation denselben Wettlauf meldet. Neu in der API: DB.Keys() gibt den bei Open gesetzten Schluesselgeber heraus. Artefakte ausserhalb der Datenbank brauchen denselben Schluessel — eine Sicherung, die die Felder beim Schreiben entschluesselt, muss sie wieder verschluesseln koennen, und zwar ohne einen zweiten Schluesselweg. Geprueft auf SQLite, PostgreSQL und YugabyteDB 2025.2 sowie seriell gegen YugabyteDB 2024.2.9.1 mit drei Regions-Placements.
-
v1.4.1
Release: ORM++ v1.4.11eac1a37 · ·v1.4.1 — Geo-Sequenz kollisionsfrei vergeben Behebt einen Bruch der Verhaltensgleichheit: Parallele Appends auf PostgreSQL/YugabyteDB kollidierten auf dem Unique-Index (geo, seq), und der Fehler schlug bis zum Aufrufer durch. Auf SQLite verdeckte der Single-Writer den Fall vollständig — App-Code lief dort und scheiterte dort, wo er produktiv läuft.
-
v1.4.0
Release: ORM++ v1.4.05a7bab04 · ·v1.4.0: encrypted,lookup (Blind-Index) + orm.EncryptFields
-
-
-
v1.2.0
Release: ORM++ v1.2.000dc3795 · ·v1.2.0: physische Geo-Residenz — Placement in der DDL, Partitions-Abgleich je Migrate, MoveTenant/SetGeo fuer geoScoped und ES-Aggregate
-
v1.0.0
Release: ORM++ v1.0.09d6a290d · ·ORM++ v1.0.0 — model-first Persistenz für Go: CRUD + Event Sourcing (CloudEvents, Snapshots, Archivierung), Expand/Contract-Migrationen mit Dual-Write, Multi-Tenancy (DSGVO-Export/-Purge), Feld-Verschlüsselung, Geo-Partitionierung und Observability — verhaltensgleich auf SQLite, PostgreSQL und YugabyteDB. Lizenz: Apache 2.0 (© Techeve).