Simple Multi-Transport Event Bus for .NET

June 6, 2024 ยท View on GitHub

NuGet Nuget GitHub Workflow Status Dependabot license

This repository contains the code for the Tingle.EventBus libraries. This project exists to simplify the amount of work required to add events to .NET projects. The existing libraries seem to have numerous complexities in setup especially when it comes to the use of framework concepts like dependency injection and options configuration. At Tingle Software, we use this for all our event-driven architecture that is based on .NET

Packages

PackageDescription
Tingle.EventBusBase of the event bus library to allow you to publish and consume events from different transports.
Tingle.EventBus.Serializers.NewtonsoftJsonSupport for serializing events using Newtonsoft.Json.
Tingle.EventBus.Transports.Amazon.AbstractionsAbstractions for working with Amazon (AWS) based transports.
Tingle.EventBus.Transports.Amazon.KinesisTransport based on Amazon Kinesis.
Tingle.EventBus.Transports.Amazon.SqsTransport based on Amazon Simple Queue Service.
Tingle.EventBus.Transports.Azure.AbstractionsAbstractions for working with Azure based transports.
Tingle.EventBus.Transports.Azure.EventHubsTransport based on Azure Event Hubs.
Tingle.EventBus.Transports.Azure.QueueStorageTransport based on Azure Storage Queues.
Tingle.EventBus.Transports.Azure.ServiceBusTransport based on Azure Service Bus.
Tingle.EventBus.Transports.InMemoryTransport that works only in memory and in process, useful for testing.
Tingle.EventBus.Transports.KafkaTransport based on the open source Apache Kafka platform.
Tingle.EventBus.Transports.RabbitMQTransport based on the open source RabbitMQ broker.

Documentation

A number of the documents below are still a work in progress and will be added as they get ready.

Getting started

Bus Concepts and Configuration

Features

How to ...

Samples

Instrumentation and observability

All the libraries is instrumented using System.Diagnostics.Activity and System.Diagnostics.ActivitySource. This makes it easy to use with OpenTelemetry by listening to the Tingle.EventBus activity source.

services.AddOpenTelemetry().WithTracing().AddSource("Tingle.EventBus");

Issues & Comments

Please leave all comments, bugs, requests, and issues on the Issues page. We'll respond to your request ASAP!

License

The Library is licensed under the MIT license. Refer to the LICENSE file for more information.