Skip to content

Releases: oagudo/outbox

v1.0.1

01 Feb 22:41

Choose a tag to compare

fix: validate table name to prevent SQL injections

v1.0.0

01 Feb 21:32

Choose a tag to compare

Release v1.0.0

🚨 Breaking Changes

Writer.Write() Method Signature Changed

The Write() method signature has been completely redesigned to support conditional and multiple message publishing.

Migration: Replace writer.Write(ctx, msg, fn) with writer.WriteOne(ctx, msg, fn)

Motivation: Use shorter function name Write for version that enables storing multiple messages or conditionally emitting messages based on business logic within a single transaction.

TxQueryer Interface Extended

The TxQueryer interface now requires QueryRowContext() method.

Migration: Add QueryRowContext(ctx context.Context, query string, args ...any) *sql.Row to custom TxQueryer implementations.

Motivation: Enables querying single rows within transactions, a common use case that was previously unsupported.

Error Message Format Changed

Error message strings simplified from "failed to X" to "X" format.

Migration: Update code that parses or matches error message strings (affects PublishError, UpdateError, DeleteError, ReadError).

Motivation: More idiomatic Go error messages.

New Features

  • Conditional and multiple message publishing via new Write() method
  • Custom table names via WithTableName() option
  • Improved optimistic publishing with batch deletion
  • Immediate message processing on Reader.Start()

v0.15.0

22 Jan 21:43

Choose a tag to compare

feat: add UnmanagedWriter for user managed transactions

v0.14.0

10 Jun 09:49

Choose a tag to compare

feat: add option to configure custom delay between attempts

v0.13.0

09 Jun 21:48

Choose a tag to compare

refactor: improve usability by offering a new constructor for DBContext for standard sql DB
feat: add custom errors for reader to expose additional information to users

v0.12.0

08 Jun 22:24

Choose a tag to compare

feat: support QueryContext for transaction parameter in user defined callback

v0.11.2

05 Jun 22:41

Choose a tag to compare

fix: schedule message using current time instead of previous schedule time in reader
refactor: rename outbox table to use lowercase for better compatibility

v0.11.0

05 Jun 10:54

Choose a tag to compare

new feature for retry failed messages using fixed or exponential backoff

v0.10.0

02 Jun 12:46

Choose a tag to compare

refactor: new function to initialise Message

v0.9.0

02 Jun 10:32

Choose a tag to compare

add max attempts feature for reader