Franz.Common.Messaging.AzureEventHubs 1.7.5

dotnet add package Franz.Common.Messaging.AzureEventHubs --version 1.7.5
                    
NuGet\Install-Package Franz.Common.Messaging.AzureEventHubs -Version 1.7.5
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Franz.Common.Messaging.AzureEventHubs" Version="1.7.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Franz.Common.Messaging.AzureEventHubs" Version="1.7.5" />
                    
Directory.Packages.props
<PackageReference Include="Franz.Common.Messaging.AzureEventHubs" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Franz.Common.Messaging.AzureEventHubs --version 1.7.5
                    
#r "nuget: Franz.Common.Messaging.AzureEventHubs, 1.7.5"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Franz.Common.Messaging.AzureEventHubs@1.7.5
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Franz.Common.Messaging.AzureEventHubs&version=1.7.5
                    
Install as a Cake Addin
#tool nuget:?package=Franz.Common.Messaging.AzureEventHubs&version=1.7.5
                    
Install as a Cake Tool

Franz.Common.Messaging.AzureEventHubs

Franz.Common.Messaging.AzureEventHubs is the Azure Event Hubs streaming transport adapter for the Franz Framework messaging stack.

It provides high-throughput, partitioned, Kafka-style event streaming backed by Azure Event Hubs, while preserving all Franz architectural guarantees:

  • mediator-driven execution
  • deterministic metadata propagation
  • transport isolation
  • cloud-native scalability
  • consistent observability

This package is the streaming counterpart to:

  • Franz.Common.Messaging.Kafka
  • Franz.Common.Messaging.AzureEventBus (Azure Service Bus)
  • Franz.Common.Messaging.AzureEventGrid

✨ Features

🟦 Azure Event Hubs Streaming

  • Native integration with Azure Event Hubs
  • Partitioned, high-throughput event ingestion
  • Consumer-group based scaling
  • Azure-managed partition balancing
  • Blob-based checkpointing

🧠 Franz-Native Semantics

  • Uses Franz.Common.Messaging envelopes
  • Dispatches messages through Franz.Common.Mediator
  • No business logic at the transport layer
  • Deterministic propagation of correlation and metadata
  • Kafka-parity execution model

🧩 Explicit Mapping Layer (No AutoMapper)

  • Uses Franz.Common.Mapping

  • Single, authoritative transport boundary:

    • Azure Event Hubs → Franz Message
  • No reflection magic

  • Auditable, version-safe mappings


🔁 Reliability & Checkpointing

  • Uses Azure Blob Storage for checkpoints
  • Checkpoints updated only after successful mediator dispatch
  • At-least-once delivery semantics
  • Fully Azure-native retry and failure handling

📊 Observability & Diagnostics

  • Integrated with Franz.Common.Logging
  • Structured logs with Franz conventions
  • Partition, offset, and sequence number propagation
  • OpenTelemetry compatible (via mediator pipelines)

📦 Dependencies

This package intentionally depends only on core Franz building blocks and Azure SDKs:

Franz.Common.Messaging
Franz.Common.Mediator
Franz.Common.Logging
Franz.Common.Errors
Franz.Common.Headers
Franz.Common.Mapping
Franz.Common.Serialization

Azure.Messaging.EventHubs
Azure.Messaging.EventHubs.Processor
Azure.Storage.Blobs

❌ No HTTP ❌ No ASP.NET dependencies ❌ No hosting logic ❌ No pull-based consumer APIs


📂 Project Structure

Franz.Common.Messaging.AzureEventHubs/
├── Configuration/
│   └── AzureEventHubsOptions.cs
│
├── Constants/
│   └── AzureEventHubsHeaders.cs
│
├── Consumers/
│   └── AzureEventHubsProcessor.cs
│
├── Producers/
│   └── AzureEventHubsProducer.cs
│
├── Mapping/
│   └── AzureEventHubsMessageMapper.cs
│
├── Serialization/
│   └── AzureEventHubsMessageSerializer.cs
│
├── Infrastructure/
│   ├── EventHubClientFactory.cs
│   └── EventHubProcessorFactory.cs
│
├── DependencyInjection/
│   └── AzureEventHubsServiceCollectionExtensions.cs
│
└── README.md

⚙️ Configuration

Configuration is explicit and strongly typed (no magic strings, no IConfiguration coupling):

services.AddFranzAzureEventHubs(options =>
{
    options.ConnectionString = "<event-hubs-connection-string>";
    options.EventHubName = "orders-stream";
    options.ConsumerGroup = "$Default";

    options.BlobConnectionString = "<storage-connection-string>";
    options.BlobContainerName = "eventhubs-checkpoints";
});

🔄 Message Flow

Consumer (Streaming)

  1. Azure Event Hubs receives an event

  2. EventProcessorClient pushes the event to the processor

  3. Event mapped to a Franz Message

  4. Message dispatched through Franz.Mediator

  5. On success:

    • Blob checkpoint updated
  6. On failure:

    • Event retried by Azure Event Hubs

Producer

  1. Franz message published
  2. Payload serialized using Franz serialization
  3. Event sent via EventHubProducerClient
  4. Partitioning handled by Azure

📊 Header Mapping

Franz Header Azure Event Hubs Source
MessageId EventData.MessageId
CorrelationId EventData.CorrelationId
PartitionId Processor context
SequenceNumber EventData.SequenceNumber
Offset EventData.Offset
EnqueuedTime EventData.EnqueuedTime

All headers are defined in AzureEventHubsHeaders.


🚀 Extensibility

This package is designed to evolve without breaking contracts:

  • Custom partitioning strategies
  • Schema evolution support
  • Outbox integration
  • Multi-hub consumption
  • Advanced checkpoint policies

Hosting and orchestration are handled separately in a future package:

  • Franz.Common.Messaging.Azure.Hosting

📝 Version Information

  • Current Version: 1.7.5
  • Target Framework: .NET 10
  • Part of the Franz Framework

📜 License

MIT License — see LICENSE.


Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Franz.Common.Messaging.AzureEventHubs:

Package Downloads
Franz.Common.Messaging.Hosting.Azure

Shared utility library for the Franz Framework.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.7.5 87 1/10/2026
1.7.4 95 12/27/2025
1.7.3 179 12/22/2025
1.7.2 175 12/21/2025
1.7.1 117 12/20/2025
1.7.0 270 12/16/2025