- Remove deprecated test methods
- Remove deprecated adapter publish/3
- Deprecation warning for
System.convert_time_unit/3
:microsecond
instead of:microseconds
- Retry on nack would raise exception
- Conduit.Plug.DeadLetter was using the deprecated form of publish.
- Conduit.Plug.Wrap and Conduit.Plug.Unwrap. Useful for brokers without native support for headers.
- Conduit.Util - commonly used functions for adapters
- Adapters can now set the source of a message
- Broker.publish(:route, message) was changed to Broker.publish(message, :route) to help with pipelining. The old form is dreprecated.
- Various bugs in generator instructions
- Functions for dynamic to and from are no longer run at compile time (regression)
- Error message said subscribe instead of publish.
- Raises error when duplicate routes are defined.
- Fix Elixir 1.7.0 warnings
- Switched from uuid, to elixir_uuid to prevent conflict with uuid_erl, which uses also used uuid as it's app name and is commonly used in erlang packages.
- Regression where plugs were executed in reverse order.
- Regression where
Conduit.Plug.MessageActions
were no longer available inBroker
for plugs.
- Message ID plug
- Improved error message when publishing to a route that doesn't exist
- Improved error message when receiving from a route that doesn't exist
- Stop generating modules namespaced under broker for pipelines, config, subscribers, and publishers.
- Test helpers now expect a route name
- Added child specs to suport
Supervisor.init/1
- Subscriber gets passed opts specified in broker
- Adapter publish callback now accepts broker. Necessary for adapters to namespace processes to allow multiple instances of an adapter to run. Upgrading to this version requires an upgrade to the adapter.
- No notable changes
- Formatter exports for Broker DSL and test macros. (Add
import_deps: [:conduit]
to your.formatter.exs
file)
- No notable changes
- Switched from Poison to Jason for
application/json
content type
- Subscriber generator no longer generates wrong method name @doughsay
- Fixed fallback for generator config @doughsay
- Extra opts passed to content type
application/x-erlang-binary
are ignored
- Allow function to be passed for name of queue and exchange (useful for per app instance queues)
application/x-erlang-binary
content type
- Support 0.9.0 feature, with API for new content types and encodings from pre-0.9.0
- Allow content type and encoding to be stored in other parts of message. Useful for multiple encodings (e.g. encrypted and compressed)
- Generators for Brokers and Subscribers
- Support for dynamic destination for messages
- Improved logging when errors occur
- Adapter callback accepts new config argument
- Fixed all elixir deprecations
- Added more docs
- Support short hand functions for options argument for all plugs (e.g.
&foo(&1)
)
- Support function for the options argument of all plugs
- AckException and NackException plugs
- Test assertions and test adapter
- Loosened Poison version dependency
- Improved docs
- Improved errors
- Dead letter plug adds exception as header
- Small improvements for message action plugs
- Lots of functions for working with message attributes
- Added dead letter plug
- Added message action plugs for most of the operations available to modify message attributes
- Added retry plug
- Plug system changed from
Enum.reduce(plugs, message, fn plug, message -> plug.(message))
to being passed the next plug to control if it's called and handle any errors - Changed callbacks for Subscribers to work with plug system changes
- Functions for working with headers
- Message headers became map with string keys
- Added parse and format plugs with system to extend with custom content types
- Added encode and decode plugs with system to extend with custom encodings
- Added created_at plug to add timestamp to message
- Added created_by plug to annotate message with application
- Added a lot of docs around new plugs
- Conduit.Message top level attributes
- No notable changes
- No notable changes
- No notable changes
- Initial version