receiveFromEventHubs

Source processor that consumes messages from Azure Event Hubs.

The consumer will listen for messages published to the specific Event Hubs instance (referenced by authenticationConfigKey). Consumer groups enable multiple consumers to collaborate on processing messages from multiple partitions concurrently. It is the main tool for scaling on the consumer side. Furthermore, consumer groups enable multiple consuming applications to each have a separate view of the event stream and to read the stream independently at their own pace and with their own offsets.

The message will not be acknowledged to Azure Event Hubs until it has been successfully persisted in the source processor.

The Lease Manager (ref. the 'leaseManagerCredentialsKey' property) is responsible for coordinating partition ownership and checkpointing among multiple consumers in an Event Hubs consumer group. It uses Azure Storage to:

  • Track which consumer instance owns which partition (partition leasing)

  • Ensure only one consumer processes a given partition at a time

  • Store checkpoints (the last successfully processed event) for each partition, enabling reliable recovery and load balancing.

This mechanism enables distributed, scalable, and fault-tolerant event processing.

Properties

Name Summary

authenticationConfigKey

A secret key the server uses to look up the credentials needed to connect to Azure Event Hubs.

leaseManagerCredentialsKey

A secret key the server uses to look up the credentials needed for the lease manager.

fullyQualifiedNamespace

The fully-qualified Azure Event Hubs namespace (for example my-namespace.servicebus.windows.net).

Ignored when connection-string authentication is used (the namespace is embedded in the connection string). Required when OAuth2 / Microsoft Entra ID (token credential) authentication is used, as a token credential does not carry the namespace.

eventHubName

The Azure Event Hub name (entity path) to consume events from.

Ignored when connection-string authentication is used (the event hub name is embedded in the connection string). Required when OAuth2 / Microsoft Entra ID (token credential) authentication is used, as a token credential does not carry the event hub name.

checkpointContainerName

The blob container used to store consumer checkpoints (partition ownership and offsets).

Ignored when the lease-manager credentials are a connection-string secret (which supplies the container name itself). Required when OAuth2 / Microsoft Entra ID (token credential) authentication is used for the checkpoint store, as a token credential does not carry it.

The modern BlobCheckpointStore does not support a blob-name prefix, unlike the legacy lease manager. Therefore, any blobPrefix configured on an AzureLeaseManagerCredentialsSecretDto is therefore ignored. Checkpoint and ownership blobs are already namespaced under <fullyQualifiedNamespace>/<eventHubName>/<consumerGroup>/..., so consumers with different namespaces, Event Hub names, or consumer groups can safely share a container.

checkpointStorageEndpoint

The blob storage endpoint hosting the checkpoint container (for example https://my-account.blob.core.windows.net).

Ignored when the lease-manager credentials are a connection-string secret (which embeds the endpoint). Required when OAuth2 / Microsoft Entra ID (token credential) authentication is used for the checkpoint store, as a token credential does not carry it.

consumerGroupId

The consumer group ID. Consumer groups enable multiple consumer instances to process messages from different partitions in parallel and support individual message offset tracking for multiple consuming applications.

maxBatchSize

The maximum batch size to consume.

maxBatchWaitMillis

The maximum wait time (in milliseconds) to wait for a batch to be consumed.

prefetchCount

The internal prefetch count in the Azure SDK. If not set, uses the SDK default of 500. Legal values are between 1 and 8000 inclusive.

initialPosition

Position to start consuming from when no checkpoint is available. Can be one of the following string values:

  • end-of-stream: Start consuming the newest messages. Default.

  • start-of-stream: Start consuming from the oldest messages in retention.

  • <UTC date time>: ISO 8601 compatible UTC date time with a hardcoded UTC Z time zone offset. (for example, YYYY-MM-DDThh:mm:ss.sZ, or 2020-01-27T13:00:23.123Z).

enabled

Whether the consumer should actually be polling messages from Event Hubs. Defaults to true.

spreadKey

A cluster placement hint. Sources that share the same spreadKey will be distributed evenly throughout cluster nodes, improving resilience and distributing load. If not configured, default placement logic will be applied.

Optional.

name

Optional, descriptive name for the processor.

id

Required identifier of the processor, unique across all processors within the flow. Must be between 3 and 30 characters long; contain only lower and uppercase alphabetical characters (a-z and A-Z), numbers, dashes ("-"), and underscores ("_"); and start with an alphabetical character. In other words, it adheres to the regex pattern [a-zA-Z][a-zA-Z0-9_-]{2,29}.

exchangeProperties

Optional set of custom properties in a simple jdk-format, that are added to the message exchange properties before processing the incoming payload. Any existing properties with the same name will be replaced by properties defined here.

Sub-builders

Name Summary

externalSystemDetails

Strategy for describing the external system integration. Optional.

messageLoggingStrategy

Strategy for describing how a processor’s message is logged on the server.

payloadArchivingStrategy

Strategy for archiving payloads.

Details

Authentication

The authenticationConfigKey property supports secrets of type AzureConnectionString and AzureClientCertificate.

The leaseManagerCredentialsKey property supports secrets of type AzureLeaseManagerCredentials and AzureClientCertificate.

For both of these properties when using OAuth2, AzureClientCertificate must be used.

See the Secret Types documentation for formatting details.

Authorization

The receiveFromEventHubs processor has no inbound HTTP endpoint — the Flow Server consumes from Azure Event Hubs directly. Because there is no external entity to trigger the flow, assign a Poller Service Account to the flow in Flow Access after deploying.

For setup instructions, see Flow Access with Poller Service Account.