- Run
setupcallback on Broadway startup
- Do not clean up persistent terms on shutdown
- Add format_discarded callback
- Allow different config storages
- No longer set demand to
:accumulatewhen draining, for compatibility with GenStage v1.2+. This means that any polling implementation must implement theprepare_for_drainingcallback and stop polling messages. You can check how BroadwaySQS tackles this problem as an example
- Log leaked trapped exits
- Relax
nimble_optionsdependency - Improve documentation and error messages
- Remove the assumption a cancelled timer has been delivered
- Fix NoopAcknowledger metadata name
- Add
initconvenience function to acknowledgers - Allow
:resetoption 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_sizefor customized batch splitting logic
- Move the
process_name/2callback to theBroadwaybehaviour where it belongs
- Also allow
nimble_options ~> 0.4.0
- Make sure
processorsandbatch_processorsdemands 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.TermStoragenow that we have Broadway topology information on the producer init callback - Rename
:eventsto:messagesin batcher telemetry event - Remove
:timefrom "stop" telemetry event measurements - Rename
:timeto:system_timein 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/3andBroadway.test_batch/3 - Allow Broadway :via tuples as broadway names
- Enrich telemetry events with metadata
- Make
Broadway.Producerpublic - Add optional
prepare_messagescallback
- Rename
:failureTelemetry event to:exceptionso it conforms to the telemetry specification - Deprecate
Broadway.test_messages/3in favor ofBroadway.test_message/3andBroadway.test_batch/3
- Deprecate
:stagesin favor of:concurrencyfor clarity - Do not validate
:batcherif 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
:producersin favor of a single:producerkey - Add
Broadway.Message.configure_ack/3 - Add
Broadway.Message.ack_immediately/1 - Add
Broadway.producer_names/1 - Add the
c:Broadway.handle_failed/2optional callback which is invoked with failed messages - Add
:crash_reasonto Logger reports metadata - Add
c:Broadway.Producer.prepare_for_start/2optional callback which allows producers to customize the topology - Support
partition_byin processors and batchers - Log if
handle_batchreturns less messages than expected
- Add
:batch_modetoBroadway.test_messages/3to control how test messages are flushed - Add
Broadway.DummyProducerfor testing - Append .Broadway to module prefixes to avoid potential naming conflicts
- Add
metadatafield to theMessagestruct so clients can append extra information
Broadway.Message.put_partition/2has been renamed toBroadway.Message.put_batch_key/2- Allow
Broadway.Producertoprepare_for_draining/1 - Allow pipelines without batchers
- Initial release