What's new?
- @marblejs/core - I/O event decoder/encoder (RFC #273) (#272) (docs)
- @marblejs/core -
EventMetadata allows to pass additional params (#277)
- @marblejs/core -
act - pass through error events. With this feature we can trigger subsequent act error handler if previous act operator did not handled the exception (#283)
event$.pipe(
matchEvent(Codec),
act(eventValidator$(Codec)),
act(event => ...),
);
- @marblejs/messaging - exposed
timeout and transport type in TransportLayerConnection interface (#277)
- @marblejs/messaging -
correlationId will be automatically assigned for each incoming event if not defined (#277)
- @marblejs/messaging - dedicated
ackEvent, nackEvent, nackAndResendEvent functions for event acknowledgements (#277)
- @marblejs/messaging -
rejectUnhandled$ middleware (#277) (docs)
- Automatically try to reject all unhandled events when timeout defined by the transport layer options occurs.
- The middleware will be applied only for transports that support message acknowledgements.
- @marblejs/messaging - transport layer specific options are exposed via
TransportLayerConnection.config.raw (#279)
- @marblejs/messaging - allow to pass single event to
eventValidator$ middleware (#282)
Fixed
- @marblejs/core -
act operator is able to catch errors outside stream (#277)
- @marblejs/messaging - if event transformer fails to decode the event it won't break the internal event stream, instead it will be mapped to
UNKNOWN event and the error notification will be propagated downstream (#276) (#284)
- @marblejs/messaging - AMQP strategy - when
disconnect event occurs there is no error log propagated downstream #275
- @marblejs/messaging - server doesn't have to skip error events since
act operator maps default errors to *_UNHANDLED_ERROR suffixed event types to avoid event handler dead loop (#283)