Releases: ThreeDotsLabs/watermill-sql
Releases · ThreeDotsLabs/watermill-sql
v4.0.0-rc.2
What's Changed
- fix comment formatting by @roblaszczak in #41
- Bump golang.org/x/crypto from 0.20.0 to 0.31.0 by @dependabot in #40
- streamline the database interfaces and add pgx adapter by @julesjcraske in #29
New Contributors
- @julesjcraske made their first contribution in #29
Full Changelog: v4.0.0-rc.1...v4.0.0-rc.2
v4.0.0-rc.1
- Added
PostgreSQLQueueSchema
andPostgreSQLQueueOffsetsAdapter
.- This schema is similar to the original one, except it allows filtering messages with a custom
WHERE
clause. - It doesn't support customer groups.
- It allows deleting messages from the table after acking (optional).
- This schema is similar to the original one, except it allows filtering messages with a custom
- Added
NewDelayedPostgreSQLPublisher
andNewDelayedPostgresSQLSubscriber
- They work on top of the conditional schema and use the
delay
component implemented in ThreeDotsLabs/watermill#469 - The idea is to receive messages with a delay or at a given time in a simple way.
- They work on top of the conditional schema and use the
- Reworked the
SchemaAdapter
andOffsetsAdapter
interfaces (Breaking change -> will bump the major to v4).- We had a few instances where some details have been missing from one of the interface methods. It makes it difficult to extend this library with new features, as each will require a major version bump, and we want to avoid it if possible.
- To mitigate this, we're moving to a
params
struct passed to the methods instead of raw arguments. It adds some verbosity but allows extending the params if needed with no breaking changes to the library. - The methods now also return errors.
- Migration: if you don't use a custom schema/offsets adapter, you don't need to do anything. If you do, change the methods to implement the new interfaces. Use values from the
params
argument and return errors.
v3.1.0
What's Changed
- PostgreSQL Performance optimisations for large amount of messages, added
GeneratePayloadType
by @roblaszczak in #38 and #39
Full Changelog: v3.0.3...v3.1.0
v3.0.3
v3.0.2
What's Changed
- Bump golang.org/x/text from 0.3.3 to 0.3.8 by @dependabot in #25
- Bump golang.org/x/crypto from 0.0.0-20200622213623-75b288015ac9 to 0.17.0 by @dependabot in #35
- Bump github.com/jackc/pgx/v4 from 4.8.1 to 4.18.2 by @dependabot in #37
Full Changelog: v3.0.1...v3.0.2
v3.0.1
v3.0.0
What's Changed
- Added back exactly-once delivery for Postgres by @roblaszczak in #28
- Added AckDeadline option with default value of 30s for Postgres by @roblaszczak in #28
We bumped major, because:
- We wanted to provide sensible defaults for
AckDeadline
and add exactly-once-delivery support by default - someone could in theory depend on the original behaviour, - Postgres now uses
sql.LevelRepeatableRead
isolation level, - This is a breaking change because of extended
OffsetsAdapter
interface. - We also changed
string, []interface
toQuery
type inSchemaAdapter
andOffsetsAdapter
.
Update guide:
- Ensure that you don't need AckDeadline longer than the default (30s),
- If you have a custom
SchemaAdapter
orOffsetsAdapter
interface implementation, please changestring, []interface
toQuery
. - If you have a custom
OffsetsAdapter
implementation, please addBeforeSubscribingQueries(topic string, consumerGroup string) []Query
method toOffsetsAdapter
. For MySQL it can be empty. For PostgreSQL we recommend using implementation fromDefaultPostgreSQLOffsetsAdapter
.
Full Changelog: v2.0.0...v3.0.0
v2.0.0
What's Changed
- Fix potential message loss with small PollInterval and allow batch querying of messages by @roblaszczak in #23
Full Changelog: v1.4.0...v2.0.0
Bump watermill
v1.4.0 Bump watermill (#21)