- No longer set demand to
:accumulate
when draining, for compatibility with GenStage v1.2+. This means that any polling implementation must implement theprepare_for_draining
callback and stop polling messages. You can check how BroadwaySQS tackles this problem as an example
- Log leaked trapped exits
- Relax
nimble_options
dependency - Improve documentation and error messages
- Remove the assumption a cancelled timer has been delivered
- Fix NoopAcknowledger metadata name
- Add
init
convenience function to acknowledgers - Allow
:reset
option when callingupdate_rate_limiting
. When set to true, the rate limit counter and interval is immediately reset - Add the producer to the telemetry metadata
- Support custom function in
:batch_size
for customized batch splitting logic
- Move the
process_name/2
callback to theBroadway
behaviour where it belongs
- Also allow
nimble_options ~> 0.4.0
- Make sure
processors
andbatch_processors
demands are properly shuffled - Ensure proper messages metadata for telemetry events on
Broadway.Message.failed/2
Broadway v1.0 requires Erlang/OTP 21.3+.
- Remove
Broadway.TermStorage
now that we have Broadway topology information on the producer init callback - Rename
:events
to:messages
in batcher telemetry event - Remove
:time
from "stop" telemetry event measurements - Rename
:time
to:system_time
in telemetry event measurements - Rename
[:broadway, :consumer, *]
to[:broadway, :batch_processor, *]
in telemetry event
- Add
Broadway.Message.put_data/2
- Add
Broadway.stop/1
- Add
Broadway.all_running/0
- Add
Broadway.topology/1
- Add ack configuration to
Broadway.test_message/3
andBroadway.test_batch/3
- Allow Broadway :via tuples as broadway names
- Enrich telemetry events with metadata
- Make
Broadway.Producer
public - Add optional
prepare_messages
callback
- Rename
:failure
Telemetry event to:exception
so it conforms to the telemetry specification - Deprecate
Broadway.test_messages/3
in favor ofBroadway.test_message/3
andBroadway.test_batch/3
- Deprecate
:stages
in favor of:concurrency
for clarity - Do not validate
:batcher
if message failed - Add support for rate limiting producers
- Support returning state in
c:Broadway.Producer.prepare_for_draining/1
- Emit telemetry events
- Add Kafka guide
- Deprecate
:producers
in favor of a single:producer
key - Add
Broadway.Message.configure_ack/3
- Add
Broadway.Message.ack_immediately/1
- Add
Broadway.producer_names/1
- Add the
c:Broadway.handle_failed/2
optional callback which is invoked with failed messages - Add
:crash_reason
to Logger reports metadata - Add
c:Broadway.Producer.prepare_for_start/2
optional callback which allows producers to customize the topology - Support
partition_by
in processors and batchers - Log if
handle_batch
returns less messages than expected
- Add
:batch_mode
toBroadway.test_messages/3
to control how test messages are flushed - Add
Broadway.DummyProducer
for testing - Append .Broadway to module prefixes to avoid potential naming conflicts
- Add
metadata
field to theMessage
struct so clients can append extra information
Broadway.Message.put_partition/2
has been renamed toBroadway.Message.put_batch_key/2
- Allow
Broadway.Producer
toprepare_for_draining/1
- Allow pipelines without batchers
- Initial release