View Source Changelog
0.4.0
Added support for RabbitMQ 3.13, with Route, Partitions and SuperStreams support.
0.4.0 Features
- Support for
:consumerupdate
,:exchangecommandversions
,:streamstats
, commands. - Serialization options for encoding and decoding messages.
- TLS Support
- Functional
single-active-consumer
. - Initial support for
:filter_value
consumer parameter, and:createsuperstream
,:deletesuperstream
,:route
,:partitions
commands. - Initial support for SuperStreams, with RabbitMQStream.SuperConsumer and RabbitMQStream.SuperPublisher.
- Added
handle_message/1
callback for processing messages individually, ignoring messages happened before the minimal:offset
exepected by the consumer, and the messages that don't match the:filter_value
, as documented on the blog post
0.4.0 Changes
The 'Message' module tree was refactored to make all the Encoding and Decoding logic stay close to each other.
- Improved the cleanup logic for closing the connection.
- Publishers and Consumers now expects any name of a GenServer process, instead of a Module.
- Added checks on supported commands based on Server version, and exchanged commands versions.
0.4.0 Breaking Changes
- Renamed
RabbitMQStream.Subscriber
toRabbitMQStream.Consumer
- Renamed
RabbitMQStream.Publisher
toRabbitMQStream.Producer
- Each Deliver action made by the connection is now done with a
{:deliver, %RabbitMQStream.Message.Types.DeliverData{}} tuple - Offset Tracking now prefers to use CommitedOffset when available - The
handle_chunk/1callback no longer receives decoded messages. It must be done manually by the user. ## 0.3.0 Added an implementation for a stream Consumer, fixed bugs and improved the documentation. ### 0.3.0 Features - Added the
:creditcommand. - Added
RabbitMQStream.Subscriber, which subscribes to a stream, while tracking its offset and credit based on customizeable strategies. - Added the possibility of globally configuring the default Connection for Publishers and Subscribers ### 0.3.0 Bug Fixes - Fixed an issue where tcp packages with multiple commands where not being correctly parsed, and in reversed order ### 0.3.0 Changes -
RabbitMQStream.Publisherno longer calls
connecton the Connection during its setup. - Moved
RabbitMQStream.Publisher's setup logic into
handle_continue, to prevent locking up the application startup. -
RabbitMQStream.Publisherno longer declares the stream if it doesn't exists. -
RabbitMQStream.Publishermodule now can optionally declare a
before_start/2callback, which is called before it calls
declare_publisher/2, and can be used to create the stream if it doesn't exists. -
RabbitMQStream.Connectionnow buffers the requests while the connection is not yet
:open. ### 0.3.0 Breaking Changes - Subscription deliver messages are now in the format
}. ## 0.2.1 Documentation and Configuration refactoring - It is now possible to define the connection and subscriber parameters throught the
config.exsfile - Documentation improvements, and examples ## 0.2.0 The main objective of this release is to remove the manually added code from
rabbitmq_stream_common`'s Erlang implementation of Encoding and Decoding logic, with frame buffering. ## 0.1.0 Initial release with the following features: - Opening connection to RabbitMQ server - Declaring a Stream - Creating a Stream Publisher - Subscribing to Stream Messages - Initial Hex Release