Skip to content

Releases: nitoba/better-effect

better-effect-mq@0.1.3

Choose a tag to compare

[0.1.3] - 2026-09-11

Fixed

  • Complete durable PostgreSQL fan-out under its original lease and run Collect
    only after a new claim. Retain execution capacity until phase Scope cleanup
    finishes, preventing an extra acquisition of an empty flow parent.
  • Route terminal child reports by FlowStore identity and rotate bounded recovery
    across routes, parents, and pending children so later flows are not starved.
  • Preserve phase-local JobContext while retaining external business Service
    requirements in Worker layers.
  • Distinguish deliberate notification and claim cancellation during quiescence
    from storage deadlines without weakening late-claim fencing.

Compatibility

  • Add the optional FlowStore parentLeaseMode descriptor. Existing independent
    stores retain their previous lease lifecycle when the field is omitted.
  • PostgreSQL handoff requires better-effect-mq-postgres 0.1.4 or newer. The
    frozen v1 JobRecord inspection API is unchanged; suspended-parent inspection
    still requires the explicit FlowStore/v2 boundary.
  • Regression coverage includes held Scope cleanup, repeated concurrency-one
    execution, mixed child failures, nested flows, cancellation, and installed
    Nest consumers using Node and Bun.

better-effect-mq-postgres@0.1.4

Choose a tag to compare

[0.1.4] - 2026-09-11

Fixed

  • Advertise the PostgreSQL FlowStore's atomic parent lease handoff so Collect
    runs under a new claim instead of using the relinquished fan-out lease.
  • Fence heartbeat, release, and settlement for suspended parents under native
    row locks while preserving ordinary jobs in mixed heartbeat batches.
  • Drain already-admitted transactions through commit or rollback and client
    release before disposing a borrowed store. The application pool stays open.
  • Defer ordinary and controlled claims of records updated after the sampled
    clock without backdating leases or rejecting older eligible jobs.

Compatibility

  • Use with better-effect-mq 0.1.3 or newer for the corrected Worker lifecycle.
  • No schema migration or persisted job-envelope change is required. The v1
    inspection state union is unchanged; use the explicit FlowStore/v2 read
    boundary for parents waiting for children.
  • Real PostgreSQL regressions cover held phase cleanup, stale leases, claim
    timestamps, transaction draining, and repeated flow execution and shutdown.

better-effect-schema@0.1.2

Choose a tag to compare

[0.1.2] - 2026-09-10

Changed

  • Renamed the workspace package and release-artifact route from better-effect-zod to better-effect-schema.
  • Added @standard-schema/spec as a production dependency for future public type declarations.

better-effect-mq@0.1.2

Choose a tag to compare

[0.1.2] - 2026-09-10

Added

  • Immutable PreparedEnqueue producer commands and the optional prepared
    enqueue capability on the in-memory JobStore.
  • Layer-first Worker.service(tag).layer(factory) startup and Runtime-owned
    quiesce/release lifecycle, plus caller-owned Worker.succeed test doubles.
  • Retry policies with durable backoff normalization, typed failure handling,
    cooperative job timeouts, and best-effort failure notifications.
  • Process-local JobEvent observers, logging and metrics adapters, RecordedJobObserver,
    Runtime attempt metadata, and opt-in queue-depth sampling.
  • Process-local JobHealth snapshots and sinks for store failures, lease/stall
    signals, consumer failures, event lag, retention, cursor expiry, and safe metrics.
  • Flow v2 phase handlers and associated FlowStore requirements for Layer-first
    Worker route validation, including duplicate-route checks.
  • Layer-owned Flow v2 relay and bounded reconciliation/sweeper supervision,
    including at-least-once outbox delivery and graceful Runtime shutdown.
  • The deterministic TestJobStore harness, end-to-end examples, MQ documentation,
    and package/type-system release gates.

Compatibility

  • Updated the better-effect peer range to >=0.14.0 <0.15.0.

better-effect-mq-sqlite@0.1.2

Choose a tag to compare

[0.1.2] - 2026-09-10

  • Add QueueControls protocol v3 support with durable controls, persisted dispatch keys, atomic
    global/per-key permits, fixed-window rate limits, bounded rotating candidate scans, recovery
    fencing, and SQLite migration 5.
  • Add SQLite migration 3 and durable OutboxStore support with transactional append, leases,
    recovery, settlement, administration, named layers, and Bun/Node file layers.
  • Add the adapter-owned SqliteOutboxTransactions.transaction helper for serialized domain-write
    and outbox transactions with automatic commit, rollback, and cleanup.
  • Updated the better-effect peer range to >=0.14.0 <0.15.0 and aligned the
    MQ/outbox workspace peer artifacts with the current 0.1.x releases.

better-effect-mq-redis@0.1.3

Choose a tag to compare

[0.1.3] - 2026-09-10

  • Add the Redis-native RedisOutbox.transaction callback and durable
    RedisOutboxStore Layer. The callback owns MULTI/EXEC cleanup for a
    Redis domain write plus outbox append and documents the boundary as
    Redis-only rather than cross-database atomicity.
  • Atomically append terminal Flow child reports to the Redis JobStore outbox for settlement, cancellation, release, retry exhaustion, and stalled recovery, with at-least-once relay support.
  • Implement QueueControls protocol v3 with revision fencing, atomic permits, persisted dispatchKey, fixed-window rate limits, and controlled lifecycle transitions.
  • Updated the better-effect peer range to >=0.14.0 <0.15.0 and aligned the
    MQ/outbox workspace peer artifacts with the current 0.1.x releases.

better-effect-mq-postgres@0.1.3

Choose a tag to compare

[0.1.3] - 2026-09-10

  • Add contextual layerWith and layerFromConfigWith factories for PostgreSQL
    stores. Their generators resolve configuration and caller-owned pools with
    yield* during Runtime acquisition, preserving one shared pool boundary.
  • Add borrowed and config-backed Layers for PostgresFlowStore, including the
    same contextual factory variants.
  • Add PostgresOutbox.transaction for adapter-owned domain writes and
    prepared outbox appends with automatic commit, rollback, and client cleanup.
  • Add PostgreSQL controlled claim protocol v3 support with durable queue
    controls, dispatch keys, fixed-window rate limits, global/per-key permits,
    bounded fairness scanning, revision fencing, and atomic settlement/recovery.
  • Add migration 005_controls_v3.sql and schema validation for the controls
    tables and indexes.
  • Add the PostgreSQL v1 OutboxStore adapter with transactional appendIn,
    digest-idempotent appends, fenced leases, settlements, recovery, inspection,
    and default/named Service Layers.
  • Add migration 003_outbox.sql and schema validation for the durable outbox
    layout.
  • Updated the better-effect peer range to >=0.14.0 <0.15.0 and aligned the
    MQ/outbox workspace peer artifacts with the current 0.1.x releases.

better-effect-mq-outbox@0.1.3

Choose a tag to compare

[0.1.3] - 2026-09-10

Changed

  • Document adapter.transaction(resource, preparedRecord, callback, options?)
    as the normal application boundary: the callback performs the domain write,
    the adapter appends the supplied record automatically, and the adapter owns
    commit, rollback, and cleanup. Low-level appendIn helpers remain explicitly
    advanced adapter integrations.
  • Updated the better-effect peer range to >=0.14.0 <0.15.0 and the MQ peer
    contract to the current 0.1.x workspace release.

better-effect-mq-mysql@0.1.3

Choose a tag to compare

[0.1.3] - 2026-09-10

  • Add MySqlOutbox.transaction(pool, record, callback, options?) for
    adapter-owned connection and transaction lifecycle around domain writes and
    automatic outbox appends; keep appendIn as the advanced caller-owned
    transaction escape hatch.
  • Add the durable JobEventStore extension with migration 007, opaque
    namespace cursors, atomic transition appends, keyset reads, retention, and
    polling/local-wake event waits.
  • Add QueueControls protocol v3 with additive migration 006, durable dispatch
    keys and revisioned controls, atomic InnoDB permits, fixed-window rate limits,
    bounded per-key fairness, stale-token fencing, and controlled lifecycle
    recovery.
  • Add the MySQL Flow protocol v2 adapter, additive migration, deterministic
    child/dependency persistence, cross-store report outbox, reconciliation, and
    terminal child report integration with the JobStore.
  • Add the MySQL durable outbox v1 table, typed transactional append, Layer-first
    default/named outbox stores, fenced leases, recovery, settlement, and admin
    inspection operations.
  • Add the MySQL JobScheduleStore adapter and schedules migration.
  • Add atomic, deterministic schedule ticks with durable queue wake versions.
  • Updated the better-effect peer range to >=0.14.0 <0.15.0 and aligned the
    MQ/outbox workspace peer artifacts with the current 0.1.x releases.

better-effect-mq-mongodb@0.1.4

Choose a tag to compare

[0.1.4] - 2026-09-10

  • Add MongoOutbox.transaction(clientOrDb, preparedRecord, callback, options?)
    for adapter-owned MongoDB session and transaction lifecycle around domain
    writes and automatic outbox appends; preserve appendIn as the advanced
    caller-owned escape hatch.
  • Add MongoDB QueueControls protocol v3 support with durable revisioned
    controls, persisted dispatch keys, transactional global/per-key permits,
    anchored fixed-window rate limits, bounded fairness cursors, fail-closed
    legacy claims, and owner-fenced settlement/recovery.
  • Advance the MongoDB layout to version 4 with dedicated controls, permits,
    rate-window, and fairness-cursor collections and indexes.
  • Add the protocol-v2 MongoFlowStore with explicit flow migration, atomic
    child settlement reports, durable flow outbox delivery, and named layers.
  • Add the durable MongoJobEventStore with namespace-scoped monotonic cursors,
    filtered pagination, explicit age/count retention, polling fallback, and
    change-stream wake hints.
  • Advance the MongoDB layout to version 5 with validated events and cursor
    collections. Event-enabled JobStore layers append transition events in the
    same MongoDB transaction as the state change.
  • Updated the better-effect peer range to >=0.14.0 <0.15.0 and aligned the
    MQ/outbox workspace peer artifacts with the current 0.1.x releases.