- Added support for WebSockets. WebSockets enable Event processor Host to work over an HTTP proxy and in environments where the standard AMQP port 5671 is blocked. Refer to the websockets sample to see how to use WebSockets.
- Fixed bug 4363 which stopped users from providing their own LeaseManager. If both a lease manager and the options for leaseDuration/leaseRenewInterval are provided, then the latter will be ignored in favor of the leaseDuration/leaseRenewInterval properties on the lease manager.
- Use the latest version of the dependency on @azure/event-hubs that has the following bug fixes
- Added event handlers for
error
andprotocolError
events on the connection object to avoid the case of unhandled exceptions. This is related to the bug 4136 - A network connection lost error is now treated as retryable error. A new error with name
ConnectionLostError
is introduced for this scenario which you can see if you enable the logs. - When recovering from an error that caused the underlying AMQP connection to get disconnected,
rhea reconnects all the older AMQP links on the connection
resulting in the below 2 errors in the logs. We now clear rhea's internal map to avoid such reconnections.
We already have code in place to create new AMQP links to resume send/receive operations.
- InvalidOperationError: A link to connection '.....' $cbs node has already been opened.
- UnauthorizedError: Unauthorized access. 'Listen' claim(s) are required to perform this operation.
- Added event handlers for
- If you have been using the
createFromAadTokenCredentials
function or thecreateFromAadTokenCredentialsWithCustomCheckpointAndLeaseManager
function to create an instance of theEventProcessorHost
, you will now need to use the @azure/ms-rest-nodeauth library instead of ms-rest-azure library to create the credentials that are needed by these functions.- Typescript: Replace
import * from "ms-rest-azure";
withimport * from "@azure/ms-rest-nodeauth";
- Javascript: Replace
require("ms-rest-azure")
withrequire("@azure/ms-rest-nodeauth")
- Typescript: Replace
- Remove
@azure/amqp-common
andrhea-promise
as dependencies, since we use very little from those libraries and there is a risk of having two instances of rhea in the dependency chain which can cause problems while encoding types for filters. HostContext.connectionConfig
is now of typeEventHubConnectionConfig
.- Minimum dependency on
@azure/event-hubs: "^1.0.6"
.
- Bumping minimum version of @azure/event-hubs to "1.0.5".
- Taking a dependency on "@azure/amqp-common" for reusing the common parts.
- Bumping minimum version of @azure/event-hubs to "1.0.4".
- Ensures that amqp:link-stolen errors are not notified to the customer, since they are expected errors that happen during lease stealing or expiration as a part of load balancing.
- Ensures that messages are checkpointed in order.
eph.getPartitionInformation()
should works as expected when partitionId is of typenumber | string
.- updated documentation for
eventHubPath
optional property in theFromConnectionStringOptions
object.
- Stable version of the library.
- Added support to automatically balance the load of receiving messages across multiple partitions.
- Added static method to create an EPH from an
IotHubConnectionString
- Added user-agent to the underlying amqp-connection. This would help in tracking usage of EPH.
- Changed the overall design of EPH.
- Instead of attaching handlers on
eph:message
andeph:error
, now the handlers need to be passed as arguments to thestart()
method on EPH. - Apart from that an additional handler/method can be passed as an optional property
onEphError
to EPH. This handler will receive notifications from EPH regarding any errors that occur during partition management. - Removed optional property
leasecontainerName
and replaced it with a required parameterstorageContainerName
wherever applicable in all the static methods onEventProcessorHost
. - Removed optional property
autoCheckpoint
and added optional propertiescheckpointManager
onEphError
leaseRenewInterval
leaseDuration
- Please take a look at the examples for more details.
- Added an option
autoCheckpoint: false
to not checkpoint the received messages by default.
_storageBlobPrefix
is set if provided in the options, #91.
- Fixed an issue reported in #80.
- Fix dependency version.
- First version of
azure-event-processor-host
based on the newazure-event-hubs
sdk. - This client library makes it easier to manage receivers for an EventHub.
- You can checkpoint the received data to an Azure Storage Blob. The processor does checkpointing on your behalf at regular intervals. This makes it easy to start receiving events from the point you left at a later time.