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)