Produkte

Persistenz für Go – ohne eine Zeile SQL Open Source

ORM++ ist unser model-first Persistenz-Modul für Go: Sie deklarieren Ihre Modelle als Structs mit Tags, ORM++ übernimmt den Rest – vom Schema über Abfragen bis zu Event Sourcing und Migrationen.

Modelle deklarieren statt Datenbank programmieren

Der Ansatz ist konsequent model-first: Ein Go-Struct mit Tags beschreibt, was gespeichert wird – Tabellen, Indizes, Systemtabellen und Worker leitet ORM++ daraus ab. Ob ein Modell klassisch als CRUD-Tabelle oder als event-sourced Aggregat mit vollständiger Historie geführt wird, ist eine einzige Registrierungs-Entscheidung.

Codebeispiel

Vom Struct zur laufenden Persistenz – der Schnellstart aus der Doku:
import orm "gitlab.techeve.de/orm-plus-plus/orm-plus-plus"

type Todo struct {
  ID    orm.ID `orm:"pk"`
  Title string `orm:"index"`
  Done  bool
}

db, err := orm.Open(orm.SQLite("./todo.db"))
orm.Register[Todo](db, orm.CRUD())
db.Migrate(ctx)
db.StartWorkers(ctx)

ctx = orm.WithTenant(ctx, orm.SingleTenant)
todos := orm.Repo[Todo](db)
todos.Insert(ctx, &Todo{Title: "ORM++ bauen"})
open, _ := todos.Query(ctx).Where(orm.Eq("Done", false)).All()

Eigenschaften von ORM++

CRUD und Event Sourcing – in einer Library

Klassische Create/Read/Update/Delete-Modelle und event-getriebene Aggregate leben nebeneinander in derselben Anwendung: mit CloudEvents, Snapshots und Archivierung, wo Historie zählt – und schlichten Tabellen, wo nicht.

Eine Codebasis, drei Datenbanken

Dieselbe Anwendung läuft unverändert auf SQLite, PostgreSQL und YugabyteDB. Vom Ein-Datei-Prototyp bis zum verteilten Cluster ändert sich am Anwendungscode nichts.

Multi-Tenancy eingebaut

Mandanten- und Geo-Scoping sind strukturell im Datenmodell verankert statt nachträglich angeflanscht: Ohne Tenant-Kontext läuft keine Abfrage – Datenlecks zwischen Mandanten werden zum Compilezeit-Thema.

Migrationen ohne Stillstand

Alte und neue Modellversion laufen parallel, bis alles migriert ist – Schema-Änderungen brauchen kein Wartungsfenster und keinen Big-Bang-Umbau.

Doku & Quelle

Einführung, Schnellstart und Beispiele finden Sie in der Dokumentation – den Code im GitLab-Repository des Projekts.