Skip to content

Releases: OrisunLabs/Orisun

Release v0.9.1

Choose a tag to compare

@github-actions github-actions released this 24 Jul 22:44

Orisun v0.9.1

Fixed in 0.9.1

  • Stabilized the YugabyteDB LISTEN/NOTIFY integration test by retrying only
    Yugabyte's transient SQLSTATE 55000 response 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-release v3 action.

Breaking Changes

  • Replaced ORISUN_PG_SCHEMAS with ORISUN_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
    use InitializePostgresDatabaseRuntime, InitializeSqliteDatabaseRuntime,
    InitializeSqliteDatabaseRuntimeWithLockProvider, or
    InitializeFoundationDBRuntime.
  • Removed InitialBoundaries and 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 is ACTIVE before upgrading to this release.
  • After the 0.8.0 catalog is verified, replace the remaining PostgreSQL admin
    mapping with ORISUN_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-fdb

macOS

# 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-sqlite

Windows

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-fdb

Channel tags are also available: pg, sqlite, and fdb.

Release v0.8.0

Choose a tag to compare

@github-actions github-actions released this 24 Jul 01:25

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 keeps ORISUN_PG_SCHEMAS for the
    required admin mapping and as a one-time legacy boundary:schema import
    source.
  • Embedded SubscribeToEvents now accepts an eventstore.SubscribeRequest
    and a synchronous eventstore.EventHandler. Embedded callers no longer
    receive generated Event messages through MessageHandler.
  • 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/orisun must update that import. The gRPC wire
    contract is unchanged.

Added

  • Added Admin CreateBoundary, ListBoundaries, and GetBoundary RPCs,
    including asynchronous PROVISIONING, ACTIVE, and FAILED lifecycle
    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/orisun to
    the OrisunLabs-owned orisunlabs/orisun repository.
  • PostgreSQL schema mappings and SQLite boundary files are reconciled through
    BoundaryCreated events marked existedBeforeCatalog during 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_BOUNDARIES from 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:schema mappings in
    ORISUN_PG_SCHEMAS during 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/ListBoundaries is ACTIVE before
    moving traffic or starting the remaining cluster nodes. Inspect last_error
    for failed provisioning.
  • Replace embedded MessageHandler[orisun.Event] subscriptions with an
    eventstore.EventHandler callback. 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 orisun to
    orisun/grpcapi. Embedded domain types remain in orisun and do not depend
    on generated messages.
  • After every PostgreSQL node is upgraded and the catalog is verified,
    non-admin legacy mappings may be removed from ORISUN_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-fdb

macOS

# 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-sqlite

Windows

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-fdb

Channel tags are also available: pg, sqlite, and fdb.

Release v0.7.0

Choose a tag to compare

@github-actions github-actions released this 21 Jul 13:31

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/grpcapi using 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 orisun should import github.com/OrisunLabs/Orisun/orisun/grpcapi instead.

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-fdb

macOS

# 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-sqlite

Windows

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-fdb

Channel tags are also available: pg, sqlite, and fdb.

Release v0.6.1

Choose a tag to compare

@github-actions github-actions released this 18 Jul 17:20

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.4 to Go 1.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-bookworm instead of floating on golang: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.0 as 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/Orisun module path.
  • Updated binary download examples and versioned PostgreSQL, SQLite, and FoundationDB container examples to 0.6.0.
  • Documented the packed in-process GetEvents and GetLatestByCriteria APIs 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.5 toolchain for modules that consume the root or standalone Go client module.
  • Existing v0.6.0 deployments 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 ./... and go 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-fdb

macOS

# 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-sqlite

Windows

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-fdb

Channel tags are also available: pg, sqlite, and fdb.

Release v0.6.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 16:05

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.mod now declares module 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 tidy

For 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_package declarations 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.0 remains available under github.com/oexza/Orisun for consumers that have not migrated. New Go consumers should use github.com/OrisunLabs/Orisun@v0.6.0.

Validation

  • Full Go test suite, including clustered end-to-end coverage.
  • go vet ./... and go 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-fdb

macOS

# 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-sqlite

Windows

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-fdb

Channel tags are also available: pg, sqlite, and fdb.

Release v0.5.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 15:00

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

  • SaveEvents normalizes incoming events once into a canonical PreparedEventBatch; PostgreSQL, SQLite, and FoundationDB consume that prepared representation without repeating JSON decoding.
  • Storage reads return a contiguous ReadEventBatch with scalar positions and time.Time timestamps 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 aligned LatestByCriteriaBatch with an explicit Found flag. 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

  • EventsSaver implementations must provide SavePrepared and accept PreparedEventBatch.
  • EventsRetriever implementations must provide GetBatch and use the packed latest-by-criteria query/result types.
  • Embedded OrisunServer.GetEvents callers now receive ReadEventBatch.
  • Embedded OrisunServer.GetLatestByCriteria callers now pass LatestByCriteriaQuery and receive LatestByCriteriaBatch.
  • 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-fdb

macOS

# 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-sqlite

Windows

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-fdb

Channel tags are also available: pg, sqlite, and fdb.

Release v0.4.10

Choose a tag to compare

@github-actions github-actions released this 13 Jul 13:46

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_InBatchSameExpectedPositionOnlyOneWins after a seed save had already incremented the counter.

FoundationDB Build Fix

  • Downgraded github.com/apple/foundationdb/bindings/go from the API-800 binding revision to the FoundationDB 7.3-compatible revision v0.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-fdb compile 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 FULL synchronous 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 ./foundationdb
  • TEST_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 the go build -tags foundationdb stage; 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=20
  • go test ./sqlite

Commits Since v0.4.4

  • fb80b2a test: make sqlite group commit blocker deterministic
  • 327fc41 fix: align FoundationDB binding with 7.3 runtime
  • fa22e49 ci: extend package test timeout
  • 27ed534 ci: stabilize release validation
  • 07cbe72 ci: extend integration test timeout
  • f7a2371 test sqlite CCC concurrent saves
  • 9c26176 Add FoundationDB Docker image to CI
  • 7e31c88 Remove generic Docker image build from CI
  • d6a3109 Add SQLite group commit write path
  • 6e55a11 fix(sqlite): default to FULL synchronous mode
  • 8ec14cc fix(sqlite): default to FULL synchronous mode
  • 65fd0f0 docs: replace em-dashes with standard punctuation
  • 77720a5 docs: 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-fdb

macOS

# 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-sqlite

Windows

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-fdb

Channel tags are also available: pg, sqlite, and fdb.

Release v0.4.4

Choose a tag to compare

@github-actions github-actions released this 01 Jul 20:53

Orisun v0.4.4

Orisun v0.4.4

Release Packaging

  • Release artifacts are now backend-specific only: orisun-pg, orisun-sqlite, and orisun-fdb.
  • The release workflow no longer publishes the combined orisun-<os>-<arch> binaries.
  • Docker publishing now emits only backend-specific tags: pg, sqlite, and fdb, plus versioned -pg, -sqlite, and -fdb tags. The unqualified latest and <version> tags are no longer published.

FoundationDB

  • Added an official FoundationDB Docker image build using Dockerfile.fdb.
  • The FDB image builds cmd/orisun-fdb with -tags foundationdb, includes the FoundationDB 7.3.77 client library, and sets the runtime library path for libfdb_c.so.
  • Added an FDB container entrypoint that fixes persistent NATS directory ownership before dropping to the orisun user.

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 .dockerignore to keep docs build output and docs dependencies out of Docker build contexts.

Validation

  • git diff --check
  • go test ./...
  • bun run build in docs/
  • ./build.sh linux amd64 dev pg
  • ./build.sh linux amd64 dev sqlite
  • ./build.sh linux amd64 dev all fails fast as unsupported
  • docker build -f Dockerfile.fdb ... -t orisun-fdb:test .
  • FDB image smoke check confirmed libfdb_c.so resolves and the entrypoint starts as the orisun user
  • 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-fdb

macOS

# 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-sqlite

Windows

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-fdb

Channel tags are also available: pg, sqlite, and fdb.

Release v0.4.3

Choose a tag to compare

@github-actions github-actions released this 01 Jul 16:30

Orisun v0.4.3

Orisun v0.4.3

Highlights

  • Adds a native FoundationDB backend, exposed through cmd/orisun-fdb and embedded/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: AccountOpened event ids are the account identity, and later events use scopes.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_PRECONDITION instead 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.sh and scripts/fdb_test_container.sh.

Storage And Runtime

  • Adds ORISUN_BACKEND=foundationdb support 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 build in docs/

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-fdb

macOS

# 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 orisun

Windows

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-sqlite

Channel tags are also available: latest, pg, and sqlite.

Release v0.4.2

Choose a tag to compare

@github-actions github-actions released this 22 Jun 15:33

Orisun v0.4.2

Highlights

  • Removed the redundant physical event_type storage column from PostgreSQL and SQLite event tables.
  • event_type remains part of the public API; saved events now use canonical data.eventType as 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_type values into data.eventType before dropping the old column.
  • Added default event-type ordering indexes for faster eventType criteria 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_type column after backfill.
  • Clients do not need to change request or response payloads; continue sending event_type and querying eventType in criteria.

Validation

  • go test ./sqlite
  • go test ./postgres
  • go test ./...
  • bun run build from docs/

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-sqlite

macOS

# 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 orisun

Windows

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-sqlite

Channel tags are also available: latest, pg, and sqlite.