Skip to content

Commit

Permalink
Merge pull request #320 from zarusz/release/v3
Browse files Browse the repository at this point in the history
3.0.0 Release
  • Loading branch information
zarusz authored Jan 26, 2025
2 parents ff23631 + cb4f6c2 commit 637197e
Show file tree
Hide file tree
Showing 404 changed files with 11,417 additions and 3,827 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
push:
branches: ["master", "release/*", "feature/*"]
pull_request_target:
branches: ["master", "devops/*"]
branches: ["master", "release/*", "devops/*"]
workflow_dispatch:

permissions:
Expand Down Expand Up @@ -40,7 +40,7 @@ jobs:
- name: Setup .NET 8.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
dotnet-version: 9.0.x
cache: false

- name: Setup .NET
Expand Down
20 changes: 11 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@ SlimMessageBus is a client façade for message brokers for .NET. It comes with i
[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=zarusz_SlimMessageBus&metric=vulnerabilities)](https://sonarcloud.io/summary/overall?id=zarusz_SlimMessageBus)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=zarusz_SlimMessageBus&metric=alert_status)](https://sonarcloud.io/summary/overall?id=zarusz_SlimMessageBus)

> The v2 release is available (see [migration guide](https://github.com/zarusz/SlimMessageBus/releases/tag/Host.Transport-2.0.0)).
> The v3 release is [under construction](https://github.com/zarusz/SlimMessageBus/tree/release/v3).
> The v3 release is [available](https://github.com/zarusz/SlimMessageBus/releases/tag/3.0.0).
- [Key elements of SlimMessageBus](#key-elements-of-slimmessagebus)
- [Docs](#docs)
Expand Down Expand Up @@ -47,6 +46,7 @@ SlimMessageBus is a client façade for message brokers for .NET. It comes with i

- [Introduction](docs/intro.md)
- Providers:
- [Amazon SQS/SNS](docs/provider_amazon_sqs.md)
- [Apache Kafka](docs/provider_kafka.md)
- [Azure EventHubs](docs/provider_azure_eventhubs.md)
- [Azure ServiceBus](docs/provider_azure_servicebus.md)
Expand All @@ -69,11 +69,12 @@ SlimMessageBus is a client façade for message brokers for .NET. It comes with i
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SlimMessageBus` | The core API for SlimMessageBus | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.svg)](https://www.nuget.org/packages/SlimMessageBus) |
| **Transport providers** | | |
| `.Host.AmazonSQS` | Transport provider for Amazon SQS / SNS | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.Host.AmazonSQS.svg)](https://www.nuget.org/packages/SlimMessageBus.Host.AmazonSQS) |
| `.Host.AzureEventHub` | Transport provider for Azure Event Hubs | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.Host.AzureEventHub.svg)](https://www.nuget.org/packages/SlimMessageBus.Host.AzureEventHub) |
| `.Host.AzureServiceBus` | Transport provider for Azure Service Bus | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.Host.AzureServiceBus.svg)](https://www.nuget.org/packages/SlimMessageBus.Host.AzureServiceBus) |
| `.Host.Kafka` | Transport provider for Apache Kafka | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.Host.Kafka.svg)](https://www.nuget.org/packages/SlimMessageBus.Host.Kafka) |
| `.Host.Memory` | Transport provider implementation for in-process (in memory) message passing (no messaging infrastructure required) | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.Host.Memory.svg)](https://www.nuget.org/packages/SlimMessageBus.Host.Memory) |
| `.Host.MQTT` | Transport provider for MQTT | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.Host.MQTT.svg)](https://www.nuget.org/packages/SlimMessageBus.Host.MQTT) |
| `.Host.Memory` | Transport provider implementation for in-process (in memory) message passing (no messaging infrastructure required) | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.Host.Memory.svg)](https://www.nuget.org/packages/SlimMessageBus.Host.Memory) |
| `.Host.NATS` | Transport provider for [NATS](https://nats.io/) | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.Host.NATS.svg)](https://www.nuget.org/packages/SlimMessageBus.Host.NATS) |
| `.Host.RabbitMQ` | Transport provider for RabbitMQ | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.Host.RabbitMQ.svg)](https://www.nuget.org/packages/SlimMessageBus.Host.RabbitMQ) |
| `.Host.Redis` | Transport provider for Redis | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.Host.Redis.svg)](https://www.nuget.org/packages/SlimMessageBus.Host.Redis) |
Expand All @@ -88,9 +89,10 @@ SlimMessageBus is a client façade for message brokers for .NET. It comes with i
| `.Host.AspNetCore` | Integration for ASP.NET Core | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.Host.AspNetCore.svg)](https://www.nuget.org/packages/SlimMessageBus.Host.AspNetCore) |
| `.Host.Interceptor` | Core interface for interceptors | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.Host.Interceptor.svg)](https://www.nuget.org/packages/SlimMessageBus.Host.Interceptor) |
| `.Host.FluentValidation` | Validation for messages based on [FluentValidation](https://www.nuget.org/packages/FluentValidation) | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.Host.FluentValidation.svg)](https://www.nuget.org/packages/SlimMessageBus.Host.FluentValidation) |
| `.Host.Outbox.Sql` | Transactional Outbox using SQL | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.Host.Outbox.Sql.svg)](https://www.nuget.org/packages/SlimMessageBus.Host.Outbox.Sql) |
| `.Host.Outbox.DbContext` | Transactional Outbox using EF DbContext | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.Host.Outbox.DbContext.svg)](https://www.nuget.org/packages/SlimMessageBus.Host.Outbox.DbContext) |
| `.Host.Outbox.Sql` | Transactional Outbox using MSSQL | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.Host.Outbox.Sql.svg)](https://www.nuget.org/packages/SlimMessageBus.Host.Outbox.Sql) |
| `.Host.Outbox.Sql.DbContext` | Transactional Outbox using MSSQL with EF DataContext integration | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.Host.Outbox.Sql.DbContext.svg)](https://www.nuget.org/packages/SlimMessageBus.Host.Outbox.Sql.DbContext) |
| `.Host.AsyncApi` | [AsyncAPI](https://www.asyncapi.com/) specification generation via [Saunter](https://github.com/tehmantra/saunter) | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.Host.AsyncApi.svg)](https://www.nuget.org/packages/SlimMessageBus.Host.AsyncApi) |
| `.Host.CircuitBreaker.HealthCheck` | Consumer circuit breaker based on [health checks](docs/intro.md#health-check-circuit-breaker) | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.Host.CircuitBreaker.HealthCheck.svg)](https://www.nuget.org/packages/SlimMessageBus.Host.CircuitBreaker.HealthCheck) |

Typically the application layers (domain model, business logic) only need to depend on `SlimMessageBus` which is the facade, and ultimately the application hosting layer (ASP.NET, Console App, Windows Service) will reference and configure the other packages (`SlimMessageBus.Host.*`) which are the messaging transport providers and additional plugins.

Expand All @@ -111,7 +113,7 @@ Another service (or application layer) handles the message:
```cs
public class SomeMessageConsumer : IConsumer<SomeMessage>
{
public async Task OnHandle(SomeMessage message)
public async Task OnHandle(SomeMessage message, CancellationToken cancellationToken)
{
// handle the message
}
Expand All @@ -134,7 +136,7 @@ The receiving side handles the request and replies:
```cs
public class SomeRequestHandler : IRequestHandler<SomeRequest, SomeResponse>
{
public async Task<SomeResponse> OnHandle(SomeRequest request)
public async Task<SomeResponse> OnHandle(SomeRequest request, CancellationToken cancellationToken)
{
// handle the request message and return a response
return new SomeResponse { /* ... */ };
Expand Down Expand Up @@ -186,7 +188,7 @@ services.AddSlimMessageBus(mbb =>
// Scan assembly for consumers, handlers, interceptors, and register into MSDI
.AddServicesFromAssemblyContaining<SomeMessageConsumer>()
//.AddServicesFromAssembly(Assembly.GetExecutingAssembly());
//.AddServicesFromAssembly(Assembly.GetExecutingAssembly())
// Add JSON serializer
.AddJsonSerializer(); // requires SlimMessageBus.Host.Serialization.Json or SlimMessageBus.Host.Serialization.SystemTextJson package
Expand All @@ -213,7 +215,7 @@ The domain event handler implements the `IConsumer<T>` interface:
// domain event handler
public class OrderSubmittedHandler : IConsumer<OrderSubmittedEvent>
{
public Task OnHandle(OrderSubmittedEvent e)
public Task OnHandle(OrderSubmittedEvent e, CancellationToken cancellationToken)
{
// ...
}
Expand Down
8 changes: 6 additions & 2 deletions build/tasks.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,16 @@ $projects = @(
"SlimMessageBus.Host.Sql",
"SlimMessageBus.Host.Sql.Common",
"SlimMessageBus.Host.Nats",

"SlimMessageBus.Host.AmazonSQS",

"SlimMessageBus.Host.FluentValidation",

"SlimMessageBus.Host.Outbox",
"SlimMessageBus.Host.Outbox.Sql",
"SlimMessageBus.Host.Outbox.DbContext",
"SlimMessageBus.Host.Outbox.Sql.DbContext",

"SlimMessageBus.Host.CircuitBreaker",
"SlimMessageBus.Host.CircuitBreaker.HealthCheck",

"SlimMessageBus.Host.AsyncApi"
)
Expand Down
3 changes: 3 additions & 0 deletions docs/NuGet.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@ SlimMessageBus additionally provides request-response implementation over messag

Transports:

- Amazon SQS/SNS
- Apache Kafka
- Azure Event Hub
- Azure Service Bus
- Hybrid (composition of the bus out of many transports)
- In-Memory transport (domain events, mediator)
- MQTT / Azure IoT Hub
- NATS
- RabbitMQ
- Redis
- SQL (MS SQL, PostgreSql)
Expand All @@ -22,5 +24,6 @@ Plugins:
- Transactional Outbox pattern (SQL, DbContext)
- Serialization using JSON, Avro, ProtoBuf
- AsyncAPI specification generation
- Consumer Circuit Breaker based on Health Checks

Find out more [https://github.com/zarusz/SlimMessageBus](https://github.com/zarusz/SlimMessageBus).
9 changes: 5 additions & 4 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@

- [Introduction](intro.md)
- Providers
- [Amazon SQS/SNS](provider_amazon_sqs.md)
- [Apache Kafka](provider_kafka.md)
- [Azure Event Hubs](provider_azure_eventhubs.md)
- [Azure Service Bus](provider_azure_servicebus.md)
- [Azure EventHubs](provider_azure_eventhubs.md)
- [Azure ServiceBus](provider_azure_servicebus.md)
- [Hybrid](provider_hybrid.md)
- [MQTT](provider_mqtt.md)
- [Memory](provider_memory.md)
- [RabbitMq](provider_rabbitmq.md)
- [NATS](provider_nats.md)
- [RabbitMQ](provider_rabbitmq.md)
- [Redis](provider_redis.md)
- [SQL](provider_sql.md)
- [NATS](provider_nats.md)
- [Serialization Plugins](serialization.md)
Loading

0 comments on commit 637197e

Please sign in to comment.