Releases: OrisunLabs/Orisun
Release list
Release v0.9.1
Orisun v0.9.1
Fixed in 0.9.1
- Stabilized the YugabyteDB LISTEN/NOTIFY integration test by retrying only
Yugabyte's transient SQLSTATE55000response while its notification
internals finish initializing. Other listener errors still fail immediately. - Release publication now verifies successful CI for the exact tagged
main
commit instead of running the full test suite a second time. Manual release
reruns also build from the resolved tag commit. - Updated GitHub Release publishing to the Node 24-compatible
softprops/action-gh-releasev3 action.
Breaking Changes
- Replaced
ORISUN_PG_SCHEMASwithORISUN_PG_ADMIN_SCHEMA. PostgreSQL now
bootstraps only the admin boundary; application boundary placements are
replayed exclusively from the event-backed catalog. Existing installations
from 0.7.x or earlier must not skip 0.8.0, which imports the complete legacy
mapping. Startup now rejects a pre-existing PostgreSQL admin store without
that catalog migration. - Removed the tuple-return backend initialization functions. Go callers must
useInitializePostgresDatabaseRuntime,InitializeSqliteDatabaseRuntime,
InitializeSqliteDatabaseRuntimeWithLockProvider, or
InitializeFoundationDBRuntime. - Removed
InitialBoundariesand the startup boundary-list parameters from
backend and EventStore runtime APIs. Startup bootstraps only the configured
admin boundary; application boundaries start exclusively through catalog
replay.
Changed
- Removed post-0.8 legacy boundary reconciliation. Fresh installations
bootstrap only the admin boundary; all application boundaries are installed
by replaying the durable catalog. - Removed bridge-only storage migrations for legacy event columns, PostgreSQL
logical positions and checkpoints, and pre-0.8 SQLite metadata layouts.
Current schema initialization and restore-safe position handling remain. - Removed rolling-upgrade compatibility for pre-0.8 literal JetStream lock
values. Current nodes accept only versioned, expiring lease records.
Migration Notes
- Existing installations must run 0.8.0 and verify that every expected
boundary isACTIVEbefore upgrading to this release. - After the 0.8.0 catalog is verified, replace the remaining PostgreSQL admin
mapping withORISUN_PG_ADMIN_SCHEMA=<admin-schema>.
Installation
Linux
# PostgreSQL-only binary
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.9.1/orisun-pg-linux-amd64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.9.1/orisun-sqlite-linux-amd64 -o orisun-sqlite
chmod +x orisun-sqlite
# FoundationDB-only binary (Linux only; requires the FoundationDB
# client library installed: foundationdb-clients 7.3.x)
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.9.1/orisun-fdb-linux-amd64 -o orisun-fdb
chmod +x orisun-fdbmacOS
# PostgreSQL-only binary for Apple Silicon
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.9.1/orisun-pg-darwin-arm64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary for Apple Silicon
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.9.1/orisun-sqlite-darwin-arm64 -o orisun-sqlite
chmod +x orisun-sqliteWindows
Download the PostgreSQL-only or SQLite-only binary from the assets below.
Docker
docker pull orisunlabs/orisun:0.9.1-pg
docker pull orisunlabs/orisun:0.9.1-sqlite
docker pull orisunlabs/orisun:0.9.1-fdbChannel tags are also available: pg, sqlite, and fdb.
Release v0.8.0
Orisun v0.8.0
Breaking Changes
- Removed
ORISUN_BOUNDARIES. Application boundaries are now immutable,
event-backed definitions in the admin catalog and can be created or imported
while the server is running. PostgreSQL keepsORISUN_PG_SCHEMASfor the
required admin mapping and as a one-time legacyboundary:schemaimport
source. - Embedded
SubscribeToEventsnow accepts aneventstore.SubscribeRequest
and a synchronouseventstore.EventHandler. Embedded callers no longer
receive generatedEventmessages throughMessageHandler. - Generated Go protobuf messages and gRPC stubs now live together in
github.com/OrisunLabs/Orisun/orisun/grpcapi. Server-module callers that
used generated request, response, event, or client types from
github.com/OrisunLabs/Orisun/orisunmust update that import. The gRPC wire
contract is unchanged.
Added
- Added Admin
CreateBoundary,ListBoundaries, andGetBoundaryRPCs,
including asynchronousPROVISIONING,ACTIVE, andFAILEDlifecycle
states. - Added matching boundary-management methods to the PostgreSQL, SQLite, and
FoundationDB Go embedding packages and the Node Admin client. - Added per-process durable catalog replay and independent provisioning retries
so every clustered node installs newly defined boundaries without a restart
and one failed definition does not block later definitions.
Changed
- Moved Docker Hub publishing and image documentation from
orexza/orisunto
the OrisunLabs-ownedorisunlabs/orisunrepository. - PostgreSQL schema mappings and SQLite boundary files are reconciled through
BoundaryCreatedevents markedexistedBeforeCatalogduring the first
upgraded startup. FoundationDB is beta and does not perform legacy catalog
migration. New definitions provision backend storage, runtime registries,
publishers, and dynamic projectors from the same event flow.
Migration Notes
- Follow the complete
0.7.0 to 0.8.0 upgrade guide
for preflight checks, backend-specific configuration, rolling-upgrade
sequencing, verification, client changes, and rollback. - Back up the durable store and admin boundary, remove
ORISUN_BOUNDARIESfrom the 0.8.0 configuration, and start one upgraded node
first. If a template is shared with 0.7.0 nodes, retain the setting until the
last old node is drained. - Keep all existing PostgreSQL
boundary:schemamappings in
ORISUN_PG_SCHEMASduring the first startup and any mixed-version rollout.
SQLite deployments must keep their existing storage directory unchanged for
discovery. - Verify every expected entry from
Admin/ListBoundariesisACTIVEbefore
moving traffic or starting the remaining cluster nodes. Inspectlast_error
for failed provisioning. - Replace embedded
MessageHandler[orisun.Event]subscriptions with an
eventstore.EventHandlercallback. Return an error from the callback to stop
the subscription; use the callback context for cancellation. - Update direct imports of server-module generated Go types from
orisunto
orisun/grpcapi. Embedded domain types remain inorisunand do not depend
on generated messages. - After every PostgreSQL node is upgraded and the catalog is verified,
non-admin legacy mappings may be removed fromORISUN_PG_SCHEMAS; the admin
boundary mapping remains required.
Installation
Linux
# PostgreSQL-only binary
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.8.0/orisun-pg-linux-amd64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.8.0/orisun-sqlite-linux-amd64 -o orisun-sqlite
chmod +x orisun-sqlite
# FoundationDB-only binary (Linux only; requires the FoundationDB
# client library installed: foundationdb-clients 7.3.x)
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.8.0/orisun-fdb-linux-amd64 -o orisun-fdb
chmod +x orisun-fdbmacOS
# PostgreSQL-only binary for Apple Silicon
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.8.0/orisun-pg-darwin-arm64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary for Apple Silicon
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.8.0/orisun-sqlite-darwin-arm64 -o orisun-sqlite
chmod +x orisun-sqliteWindows
Download the PostgreSQL-only or SQLite-only binary from the assets below.
Docker
docker pull orisunlabs/orisun:0.8.0-pg
docker pull orisunlabs/orisun:0.8.0-sqlite
docker pull orisunlabs/orisun:0.8.0-fdbChannel tags are also available: pg, sqlite, and fdb.
Release v0.7.0
Orisun v0.7.0
Highlights
- Added renewable lease-based locks for safer long-running publisher ownership.
- Introduced transport-neutral embedded core and SQLite dependency isolation.
- Moved generated gRPC bindings into
orisun/grpcapiusing reproducible standard generator mappings. - Removed gRPC dependencies from SQLite, PostgreSQL, and FoundationDB embedded runtime graphs.
- Added CI guards that reject gRPC leakage and manual build constraints in generated protobuf files.
- Simplified the project README and documentation entry point.
Compatibility
- The gRPC wire service and method names are unchanged.
- Go code using server-side generated gRPC APIs from
orisunshould importgithub.com/OrisunLabs/Orisun/orisun/grpcapiinstead.
Installation
Linux
# PostgreSQL-only binary
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.7.0/orisun-pg-linux-amd64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.7.0/orisun-sqlite-linux-amd64 -o orisun-sqlite
chmod +x orisun-sqlite
# FoundationDB-only binary (Linux only; requires the FoundationDB
# client library installed: foundationdb-clients 7.3.x)
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.7.0/orisun-fdb-linux-amd64 -o orisun-fdb
chmod +x orisun-fdbmacOS
# PostgreSQL-only binary for Apple Silicon
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.7.0/orisun-pg-darwin-arm64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary for Apple Silicon
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.7.0/orisun-sqlite-darwin-arm64 -o orisun-sqlite
chmod +x orisun-sqliteWindows
Download the PostgreSQL-only or SQLite-only binary from the assets below.
Docker
docker pull orisunlabs/orisun:0.7.0-pg
docker pull orisunlabs/orisun:0.7.0-sqlite
docker pull orisunlabs/orisun:0.7.0-fdbChannel tags are also available: pg, sqlite, and fdb.
Release v0.6.1
Orisun v0.6.1
Orisun v0.6.1
Orisun v0.6.1 is a patch release that standardizes the project on Go 1.26.5 and brings all current documentation and installation examples in line with the canonical v0.6.0+ module identity.
Changed
- Updated the root Go module directive from Go
1.26.4to Go1.26.5. - Updated CI, release, CodeQL, and dependency-scanning workflows to use Go
1.26.5. - Pinned the standard and FoundationDB release builders to
golang:1.26.5-bookworminstead of floating ongolang:latest. - Updated FoundationDB development and test containers to the same exact Go image.
- Updated the standalone Go client module and its CI/release workflows to Go
1.26.5; the root repository now points to that published client commit.
Documentation
- Updated the README and Docusaurus documentation to identify
v0.6.0as the current feature release line. - Added the canonical embedded-module installation command:
go get github.com/OrisunLabs/Orisun@v0.6.0. - Added migration guidance from the former
github.com/oexza/Orisunmodule path. - Updated binary download examples and versioned PostgreSQL, SQLite, and FoundationDB container examples to
0.6.0. - Documented the packed in-process
GetEventsandGetLatestByCriteriaAPIs introduced by the data-oriented design refactor.
Compatibility
- No gRPC or protobuf wire-contract changes.
- No storage schema, event format, index, or checkpoint migration.
- No public Go API changes beyond requiring the Go
1.26.5toolchain for modules that consume the root or standalone Go client module. - Existing
v0.6.0deployments do not require an operational migration; upgrade when rebuilding or consuming Orisun as a Go module.
Validation
- Full root Go test suite under Go
1.26.5. go vet ./...andgo build ./....- Standalone Go client tests and build.
- Docusaurus production build.
Installation
Linux
# PostgreSQL-only binary
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.6.1/orisun-pg-linux-amd64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.6.1/orisun-sqlite-linux-amd64 -o orisun-sqlite
chmod +x orisun-sqlite
# FoundationDB-only binary (Linux only; requires the FoundationDB
# client library installed: foundationdb-clients 7.3.x)
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.6.1/orisun-fdb-linux-amd64 -o orisun-fdb
chmod +x orisun-fdbmacOS
# PostgreSQL-only binary for Apple Silicon
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.6.1/orisun-pg-darwin-arm64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary for Apple Silicon
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.6.1/orisun-sqlite-darwin-arm64 -o orisun-sqlite
chmod +x orisun-sqliteWindows
Download the PostgreSQL-only or SQLite-only binary from the assets below.
Docker
docker pull orexza/orisun:0.6.1-pg
docker pull orexza/orisun:0.6.1-sqlite
docker pull orexza/orisun:0.6.1-fdbChannel tags are also available: pg, sqlite, and fdb.
Release v0.6.0
Orisun v0.6.0
Orisun v0.6.0
Orisun v0.6.0 moves the root Go module to the repository's canonical organization path:
github.com/OrisunLabs/Orisun
This is a breaking Go module identity change. It corrects the github.com/oexza/Orisun path published by v0.5.0; the server protocol, storage formats, and runtime behavior are unchanged.
Breaking change
go.modnow declaresmodule github.com/OrisunLabs/Orisun.- Every internal and public embedding import now uses the new module path.
- Go consumers must update both their module requirement and source imports.
Migration
Replace the former path throughout your Go project:
github.com/oexza/Orisun
with:
github.com/OrisunLabs/Orisun
Then fetch the new release and normalize the dependency graph:
go get github.com/OrisunLabs/Orisun@v0.6.0
go mod tidyFor example, embedded SQLite imports become:
import embeddedsqlite "github.com/OrisunLabs/Orisun/embedded/sqlite"What changed
- Updated the root module declaration and all repository-local Go imports.
- Updated PostgreSQL, SQLite, and FoundationDB embedding packages and examples.
- Updated protobuf
go_packagedeclarations and regenerated Go descriptors. - Updated release workflow and local build linker paths so version metadata is injected into the new package identity.
- Updated admin API and embedding documentation.
- Advanced the shared protobuf repository and Go, Node, and Java client submodules to published, non-dangling commits containing the corrected metadata.
Compatibility
- The gRPC service and message wire contracts are unchanged.
- Persisted event data, indexes, checkpoints, and backend schemas require no migration.
- Environment variables and server configuration are unchanged.
- Standalone Go, Node, and Java client package identities are unchanged; only their shared protobuf metadata/pointers were synchronized.
v0.5.0remains available undergithub.com/oexza/Orisunfor consumers that have not migrated. New Go consumers should usegithub.com/OrisunLabs/Orisun@v0.6.0.
Validation
- Full Go test suite, including clustered end-to-end coverage.
go vet ./...andgo build ./....- Go, Node, and Java client tests/builds.
- Documentation production build.
Installation
Linux
# PostgreSQL-only binary
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.6.0/orisun-pg-linux-amd64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.6.0/orisun-sqlite-linux-amd64 -o orisun-sqlite
chmod +x orisun-sqlite
# FoundationDB-only binary (Linux only; requires the FoundationDB
# client library installed: foundationdb-clients 7.3.x)
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.6.0/orisun-fdb-linux-amd64 -o orisun-fdb
chmod +x orisun-fdbmacOS
# PostgreSQL-only binary for Apple Silicon
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.6.0/orisun-pg-darwin-arm64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary for Apple Silicon
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.6.0/orisun-sqlite-darwin-arm64 -o orisun-sqlite
chmod +x orisun-sqliteWindows
Download the PostgreSQL-only or SQLite-only binary from the assets below.
Docker
docker pull orexza/orisun:0.6.0-pg
docker pull orexza/orisun:0.6.0-sqlite
docker pull orexza/orisun:0.6.0-fdbChannel tags are also available: pg, sqlite, and fdb.
Release v0.5.0
Orisun v0.5.0
Highlights
Orisun 0.5.0 applies data-oriented design across event writes, reads, latest-by-criteria queries, and publishing. Hot paths now use compact Go batches and scalar fields below the transport boundary, while the public gRPC/protobuf wire contract remains unchanged.
Data-oriented write and read paths
SaveEventsnormalizes incoming events once into a canonicalPreparedEventBatch; PostgreSQL, SQLite, and FoundationDB consume that prepared representation without repeating JSON decoding.- Storage reads return a contiguous
ReadEventBatchwith scalar positions andtime.Timetimestamps instead of constructing protobuf object graphs. - Embedded reads, catch-up subscriptions, and publisher drains retain the packed representation until data reaches the gRPC boundary.
- Latest-by-criteria requests now use
LatestByCriteriaQuery, and results use a positionally alignedLatestByCriteriaBatchwith an explicitFoundflag. PostgreSQL, SQLite, and FoundationDB all execute this path without protobuf objects.
Publisher and read behavior
- Publisher batches are validated as completely advancing before any event is published, preventing partial publication of an invalid prefix.
- A publisher checkpoint is persisted once after the complete acknowledged batch instead of after every event. Per-boundary
(transaction_id, global_id)ordering and at-least-once delivery semantics are preserved. - Packed event JSON encoding is allocation-bounded.
- Read pages are capped at 10,000 rows at the gRPC boundary; internal drainers continue paging by position.
Breaking Go API changes
EventsSaverimplementations must provideSavePreparedand acceptPreparedEventBatch.EventsRetrieverimplementations must provideGetBatchand use the packed latest-by-criteria query/result types.- Embedded
OrisunServer.GetEventscallers now receiveReadEventBatch. - Embedded
OrisunServer.GetLatestByCriteriacallers now passLatestByCriteriaQueryand receiveLatestByCriteriaBatch. - The former protobuf-shaped backend methods and compatibility fallback are removed.
Compatibility and migration
- The public gRPC/protobuf wire contract is unchanged, so remote Go, Node.js, Java, and other gRPC clients require no protocol migration.
- Existing database data and on-disk formats require no migration for this release.
- Third-party Go storage backends and embedded Go callers must update for the new interfaces and packed value types.
Performance
- SQLite packed reads measured about 12.9 KB and 142 allocations per operation, compared with about 13.1 KB and 203 allocations previously.
- Packed publisher JSON encoding measured about 300-318 ns, 320 B, and one allocation per event, at parity with the protobuf encoder while avoiding protobuf use on internal paths.
Documentation
- Internal architecture documentation now describes the packed representations and transport boundary.
- The documentation site design, navigation, branding, CCC/DCB explanations, backend guidance, and OrisunLabs project links were refreshed.
Full changelog: v0.4.10...v0.5.0
Installation
Linux
# PostgreSQL-only binary
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.5.0/orisun-pg-linux-amd64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.5.0/orisun-sqlite-linux-amd64 -o orisun-sqlite
chmod +x orisun-sqlite
# FoundationDB-only binary (Linux only; requires the FoundationDB
# client library installed: foundationdb-clients 7.3.x)
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.5.0/orisun-fdb-linux-amd64 -o orisun-fdb
chmod +x orisun-fdbmacOS
# PostgreSQL-only binary for Apple Silicon
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.5.0/orisun-pg-darwin-arm64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary for Apple Silicon
curl -L https://github.com/OrisunLabs/Orisun/releases/download/v0.5.0/orisun-sqlite-darwin-arm64 -o orisun-sqlite
chmod +x orisun-sqliteWindows
Download the PostgreSQL-only or SQLite-only binary from the assets below.
Docker
docker pull orexza/orisun:0.5.0-pg
docker pull orexza/orisun:0.5.0-sqlite
docker pull orexza/orisun:0.5.0-fdbChannel tags are also available: pg, sqlite, and fdb.
Release v0.4.10
Orisun v0.4.10
Orisun v0.4.10
This release supersedes the failed v0.4.5, v0.4.6, v0.4.7, v0.4.8, and v0.4.9 release attempts. The functional release contents are the accumulated changes since v0.4.4, plus the FoundationDB release-build correction from v0.4.9 and the deterministic SQLite group-commit test fix in v0.4.10.
Release Status
- v0.4.5 failed before producing a complete usable release.
- v0.4.6 and v0.4.7 were follow-up release attempts while stabilizing CI and release validation.
- v0.4.8 passed release validation, including
go test -p 1 -timeout 90m -v ./..., but failed in the FoundationDB release artifact jobs. - v0.4.9 aligned the Go FoundationDB binding with the packaged FoundationDB 7.3 runtime and headers, but release validation exposed a timing race in a SQLite group-commit concurrency test harness.
- v0.4.10 fixes that test harness race while preserving the SQLite CCC concurrency assertions.
SQLite CCC And Concurrency
- Added focused coverage for concurrent SQLite saves so CCC behavior remains deterministic under concurrent requests.
- Verified that only one conflicting writer can win when concurrent requests target the same content-query consistency context.
- Preserved the
ALREADY_EXISTS/optimistic-concurrency behavior for losing writes. - Added group-commit coverage for batching, overflow, cancellation, panic recovery, notifier behavior, clean shutdown, direct-mode parity, gap-free concurrent commits, and cross-flush expected-position conflicts.
- Fixed the group-commit blocker helper so tests wait for the current blocker flush to start, instead of assuming the single-flush counter begins at zero. This removes the CI race seen in
TestGroupCommit_InBatchSameExpectedPositionOnlyOneWinsafter a seed save had already incremented the counter.
FoundationDB Build Fix
- Downgraded
github.com/apple/foundationdb/bindings/gofrom the API-800 binding revision to the FoundationDB 7.3-compatible revisionv0.0.0-20260416192139-3ea44ce1d900. - Kept the release/runtime FoundationDB package line at
7.3.77, which is the packaged client/server version used by the existing CI and Docker release paths. - Fixed the v0.4.8 failure mode where the Go binding requested a newer C API than the 7.3 headers exposed during the FoundationDB binary and Docker builds.
- Verified both the containerized
cmd/orisun-fdbcompile path and the FDB Docker image build path after the downgrade.
SQLite Durability And Metadata
- Added the SQLite group-commit write path.
- Defaulted SQLite to
FULLsynchronous mode for safer local durability. - Preserved SQLite metadata separation from boundary event databases.
- Covered legacy metadata migration for boundary and admin state.
Release Pipeline
- Added FoundationDB Docker image coverage to CI.
- Removed the generic Docker image build from CI in favor of backend-specific image validation.
- Extended integration and package test timeouts so release validation has enough room for the Docker-backed suites.
- Stabilized release validation around the full package test run.
Documentation
- Added the Orisun logo and consolidated documentation entry pages.
- Replaced em dashes in documentation with standard punctuation.
Verification
Validated locally during the v0.4.9/v0.4.10 release preparation:
go test ./foundationdbTEST_PKGS=./cmd/orisun-fdb scripts/fdb_test_container.sh -run '^$'docker build -t orisun-fdb:release-fix -f Dockerfile.fdb .docker build --platform linux/amd64 -t orisun-fdb:release-fix-amd64 -f Dockerfile.fdb .reached and completed thego build -tags foundationdbstage; the resulting amd64 image was present locally.go test -p 1 -timeout 90m -v ./...go test ./sqlite -run 'TestGroupCommit_InBatchSameExpectedPositionOnlyOneWins|TestGroupCommit_InBatchConflictEarlierWinsLaterAlreadyExists|TestGroupCommit_CancelledWhileQueuedIsDroppedWithoutAllocatingIDs' -count=20go test ./sqlite
Commits Since v0.4.4
fb80b2atest: make sqlite group commit blocker deterministic327fc41fix: align FoundationDB binding with 7.3 runtimefa22e49ci: extend package test timeout27ed534ci: stabilize release validation07cbe72ci: extend integration test timeoutf7a2371test sqlite CCC concurrent saves9c26176Add FoundationDB Docker image to CI7e31c88Remove generic Docker image build from CId6a3109Add SQLite group commit write path6e55a11fix(sqlite): default to FULL synchronous mode8ec14ccfix(sqlite): default to FULL synchronous mode65fd0f0docs: replace em-dashes with standard punctuation77720a5docs: add Orisun logo and consolidate entry pages
Installation
Linux
# PostgreSQL-only binary
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.10/orisun-pg-linux-amd64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.10/orisun-sqlite-linux-amd64 -o orisun-sqlite
chmod +x orisun-sqlite
# FoundationDB-only binary (Linux only; requires the FoundationDB
# client library installed: foundationdb-clients 7.3.x)
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.10/orisun-fdb-linux-amd64 -o orisun-fdb
chmod +x orisun-fdbmacOS
# PostgreSQL-only binary for Apple Silicon
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.10/orisun-pg-darwin-arm64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary for Apple Silicon
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.10/orisun-sqlite-darwin-arm64 -o orisun-sqlite
chmod +x orisun-sqliteWindows
Download the PostgreSQL-only or SQLite-only binary from the assets below.
Docker
docker pull orexza/orisun:0.4.10-pg
docker pull orexza/orisun:0.4.10-sqlite
docker pull orexza/orisun:0.4.10-fdbChannel tags are also available: pg, sqlite, and fdb.
Release v0.4.4
Orisun v0.4.4
Orisun v0.4.4
Release Packaging
- Release artifacts are now backend-specific only:
orisun-pg,orisun-sqlite, andorisun-fdb. - The release workflow no longer publishes the combined
orisun-<os>-<arch>binaries. - Docker publishing now emits only backend-specific tags:
pg,sqlite, andfdb, plus versioned-pg,-sqlite, and-fdbtags. The unqualifiedlatestand<version>tags are no longer published.
FoundationDB
- Added an official FoundationDB Docker image build using
Dockerfile.fdb. - The FDB image builds
cmd/orisun-fdbwith-tags foundationdb, includes the FoundationDB 7.3.77 client library, and sets the runtime library path forlibfdb_c.so. - Added an FDB container entrypoint that fixes persistent NATS directory ownership before dropping to the
orisunuser.
Docs And Tooling
- Updated README and docs to describe backend-specific binaries and Docker tags.
- Updated local build/task helpers so release builds no longer produce the deprecated all-backends binary.
- Tightened
.dockerignoreto keep docs build output and docs dependencies out of Docker build contexts.
Validation
git diff --checkgo test ./...bun run buildindocs/./build.sh linux amd64 dev pg./build.sh linux amd64 dev sqlite./build.sh linux amd64 dev allfails fast as unsupporteddocker build -f Dockerfile.fdb ... -t orisun-fdb:test .- FDB image smoke check confirmed
libfdb_c.soresolves and the entrypoint starts as theorisunuser docker build -f Dockerfile ... --build-arg FLAVOR=pg -t orisun-pg:test .
Note: local SQLite Docker image validation was interrupted after Docker BuildKit became idle during the SQLite compile step. The SQLite binary build passed locally, and the release workflow will build the SQLite image from the same backend-specific Dockerfile path.
Installation
Linux
# PostgreSQL-only binary
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.4/orisun-pg-linux-amd64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.4/orisun-sqlite-linux-amd64 -o orisun-sqlite
chmod +x orisun-sqlite
# FoundationDB-only binary (Linux only; requires the FoundationDB
# client library installed: foundationdb-clients 7.3.x)
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.4/orisun-fdb-linux-amd64 -o orisun-fdb
chmod +x orisun-fdbmacOS
# PostgreSQL-only binary for Apple Silicon
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.4/orisun-pg-darwin-arm64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary for Apple Silicon
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.4/orisun-sqlite-darwin-arm64 -o orisun-sqlite
chmod +x orisun-sqliteWindows
Download the PostgreSQL-only or SQLite-only binary from the assets below.
Docker
docker pull orexza/orisun:0.4.4-pg
docker pull orexza/orisun:0.4.4-sqlite
docker pull orexza/orisun:0.4.4-fdbChannel tags are also available: pg, sqlite, and fdb.
Release v0.4.3
Orisun v0.4.3
Orisun v0.4.3
Highlights
- Adds a native FoundationDB backend, exposed through
cmd/orisun-fdbandembedded/foundationdb. - Marks the FoundationDB backend as beta/pre-release in the docs so storage behavior and operational contracts can still change if needed.
- Adds YugabyteDB dialect support for the PostgreSQL-compatible backend path.
- Expands Command Context Consistency documentation around event scopes, carried state, idempotent retries, indexing, projections, storage backends, and deployment.
- Aligns ledger and client examples around event-scoped account identity:
AccountOpenedevent ids are the account identity, and later events usescopes.accountOpenedId.
FoundationDB
- Implements FoundationDB persistence, criteria reads, consistency checks, subscriptions, native locking, guard locks, size-limit checks, and backend configuration.
- Requires ready covering indexes for FoundationDB criteria reads and CCC checks, returning
FAILED_PRECONDITIONinstead of scanning a whole boundary. - Adds per-boundary ordering and workload tests, including gRPC ledger coverage and backend scaling tests.
- Adds local/container FDB tooling through
scripts/fdb_local_docker.shandscripts/fdb_test_container.sh.
Storage And Runtime
- Adds
ORISUN_BACKEND=foundationdbsupport and FoundationDB config tests. - Adds the FDB-only server entry point.
- Preserves backend status and scope-event checkpoint behavior across backend paths.
- Hardens FoundationDB conflict, index, lock, and size-limit semantics.
- Adds CI and release workflow updates for the new backend/tooling surface.
Documentation
- Refreshes the project docs with multi-language API examples, comparison material, internals, deployment, troubleshooting, observability, storage-backend, indexing, event-scopes, schema-evolution, idempotency, and projection-rebuild guidance.
- Reworks the ledger tutorial into a double-entry transfer flow with scoped account identity and explicit root/scope indexes.
- Updates Go and Node client README examples to match the scoped-account pattern.
- Documents FoundationDB topology guidance and beta status.
Verification
go test ./...bun run buildindocs/
Installation
Linux
# All-backends binary for amd64
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.3/orisun-linux-amd64 -o orisun
chmod +x orisun
# All-backends binary for arm64
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.3/orisun-linux-arm64 -o orisun
chmod +x orisun
# PostgreSQL-only binary
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.3/orisun-pg-linux-amd64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.3/orisun-sqlite-linux-amd64 -o orisun-sqlite
chmod +x orisun-sqlite
# FoundationDB-only binary (Linux only; requires the FoundationDB
# client library installed: foundationdb-clients 7.3.x)
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.3/orisun-fdb-linux-amd64 -o orisun-fdb
chmod +x orisun-fdbmacOS
# All-backends binary for amd64
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.3/orisun-darwin-amd64 -o orisun
chmod +x orisun
# All-backends binary for arm64 (Apple Silicon)
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.3/orisun-darwin-arm64 -o orisun
chmod +x orisunWindows
Download the appropriate binary from the assets below.
Docker
docker pull orexza/orisun:0.4.3
docker pull orexza/orisun:0.4.3-pg
docker pull orexza/orisun:0.4.3-sqliteChannel tags are also available: latest, pg, and sqlite.
Release v0.4.2
Orisun v0.4.2
Highlights
- Removed the redundant physical
event_typestorage column from PostgreSQL and SQLite event tables. event_typeremains part of the public API; saved events now use canonicaldata.eventTypeas the backend source of truth, and reads derive response event types from that JSON key.- Added automatic PostgreSQL and SQLite migrations that backfill legacy
event_typevalues intodata.eventTypebefore dropping the old column. - Added default event-type ordering indexes for faster
eventTypecriteria and latest-event lookups. - Updated EventStore docs, tutorial, and getting-started guides to describe the API/storage split clearly.
Upgrade Notes
- Existing PostgreSQL and SQLite deployments migrate automatically on startup.
- Back up production databases before upgrading, as the migration rewrites event storage shape by dropping the legacy
event_typecolumn after backfill. - Clients do not need to change request or response payloads; continue sending
event_typeand queryingeventTypein criteria.
Validation
go test ./sqlitego test ./postgresgo test ./...bun run buildfromdocs/
Installation
Linux
# All-backends binary for amd64
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.2/orisun-linux-amd64 -o orisun
chmod +x orisun
# All-backends binary for arm64
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.2/orisun-linux-arm64 -o orisun
chmod +x orisun
# PostgreSQL-only binary
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.2/orisun-pg-linux-amd64 -o orisun-pg
chmod +x orisun-pg
# SQLite-only binary
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.2/orisun-sqlite-linux-amd64 -o orisun-sqlite
chmod +x orisun-sqlitemacOS
# All-backends binary for amd64
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.2/orisun-darwin-amd64 -o orisun
chmod +x orisun
# All-backends binary for arm64 (Apple Silicon)
curl -L https://github.com/oexza/Orisun/releases/download/v0.4.2/orisun-darwin-arm64 -o orisun
chmod +x orisunWindows
Download the appropriate binary from the assets below.
Docker
docker pull orexza/orisun:0.4.2
docker pull orexza/orisun:0.4.2-pg
docker pull orexza/orisun:0.4.2-sqliteChannel tags are also available: latest, pg, and sqlite.