Skip to content

Commit 637197e

Browse files
authored
Merge pull request #320 from zarusz/release/v3
3.0.0 Release
2 parents ff23631 + cb4f6c2 commit 637197e

File tree

404 files changed

+11417
-3827
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

404 files changed

+11417
-3827
lines changed

.github/workflows/build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
push:
55
branches: ["master", "release/*", "feature/*"]
66
pull_request_target:
7-
branches: ["master", "devops/*"]
7+
branches: ["master", "release/*", "devops/*"]
88
workflow_dispatch:
99

1010
permissions:
@@ -40,7 +40,7 @@ jobs:
4040
- name: Setup .NET 8.0
4141
uses: actions/setup-dotnet@v4
4242
with:
43-
dotnet-version: 8.0.x
43+
dotnet-version: 9.0.x
4444
cache: false
4545

4646
- name: Setup .NET

README.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ SlimMessageBus is a client façade for message brokers for .NET. It comes with i
1111
[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=zarusz_SlimMessageBus&metric=vulnerabilities)](https://sonarcloud.io/summary/overall?id=zarusz_SlimMessageBus)
1212
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=zarusz_SlimMessageBus&metric=alert_status)](https://sonarcloud.io/summary/overall?id=zarusz_SlimMessageBus)
1313

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

4847
- [Introduction](docs/intro.md)
4948
- Providers:
49+
- [Amazon SQS/SNS](docs/provider_amazon_sqs.md)
5050
- [Apache Kafka](docs/provider_kafka.md)
5151
- [Azure EventHubs](docs/provider_azure_eventhubs.md)
5252
- [Azure ServiceBus](docs/provider_azure_servicebus.md)
@@ -69,11 +69,12 @@ SlimMessageBus is a client façade for message brokers for .NET. It comes with i
6969
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
7070
| `SlimMessageBus` | The core API for SlimMessageBus | [![NuGet](https://img.shields.io/nuget/v/SlimMessageBus.svg)](https://www.nuget.org/packages/SlimMessageBus) |
7171
| **Transport providers** | | |
72+
| `.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) |
7273
| `.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) |
7374
| `.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) |
7475
| `.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) |
75-
| `.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) |
7676
| `.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) |
77+
| `.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) |
7778
| `.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) |
7879
| `.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) |
7980
| `.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) |
@@ -88,9 +89,10 @@ SlimMessageBus is a client façade for message brokers for .NET. It comes with i
8889
| `.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) |
8990
| `.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) |
9091
| `.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) |
91-
| `.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) |
92-
| `.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) |
92+
| `.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) |
93+
| `.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) |
9394
| `.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) |
95+
| `.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) |
9496

9597
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.
9698

@@ -111,7 +113,7 @@ Another service (or application layer) handles the message:
111113
```cs
112114
public class SomeMessageConsumer : IConsumer<SomeMessage>
113115
{
114-
public async Task OnHandle(SomeMessage message)
116+
public async Task OnHandle(SomeMessage message, CancellationToken cancellationToken)
115117
{
116118
// handle the message
117119
}
@@ -134,7 +136,7 @@ The receiving side handles the request and replies:
134136
```cs
135137
public class SomeRequestHandler : IRequestHandler<SomeRequest, SomeResponse>
136138
{
137-
public async Task<SomeResponse> OnHandle(SomeRequest request)
139+
public async Task<SomeResponse> OnHandle(SomeRequest request, CancellationToken cancellationToken)
138140
{
139141
// handle the request message and return a response
140142
return new SomeResponse { /* ... */ };
@@ -186,7 +188,7 @@ services.AddSlimMessageBus(mbb =>
186188
187189
// Scan assembly for consumers, handlers, interceptors, and register into MSDI
188190
.AddServicesFromAssemblyContaining<SomeMessageConsumer>()
189-
//.AddServicesFromAssembly(Assembly.GetExecutingAssembly());
191+
//.AddServicesFromAssembly(Assembly.GetExecutingAssembly())
190192
191193
// Add JSON serializer
192194
.AddJsonSerializer(); // requires SlimMessageBus.Host.Serialization.Json or SlimMessageBus.Host.Serialization.SystemTextJson package
@@ -213,7 +215,7 @@ The domain event handler implements the `IConsumer<T>` interface:
213215
// domain event handler
214216
public class OrderSubmittedHandler : IConsumer<OrderSubmittedEvent>
215217
{
216-
public Task OnHandle(OrderSubmittedEvent e)
218+
public Task OnHandle(OrderSubmittedEvent e, CancellationToken cancellationToken)
217219
{
218220
// ...
219221
}

build/tasks.ps1

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,16 @@ $projects = @(
3535
"SlimMessageBus.Host.Sql",
3636
"SlimMessageBus.Host.Sql.Common",
3737
"SlimMessageBus.Host.Nats",
38-
38+
"SlimMessageBus.Host.AmazonSQS",
39+
3940
"SlimMessageBus.Host.FluentValidation",
4041

4142
"SlimMessageBus.Host.Outbox",
4243
"SlimMessageBus.Host.Outbox.Sql",
43-
"SlimMessageBus.Host.Outbox.DbContext",
44+
"SlimMessageBus.Host.Outbox.Sql.DbContext",
45+
46+
"SlimMessageBus.Host.CircuitBreaker",
47+
"SlimMessageBus.Host.CircuitBreaker.HealthCheck",
4448

4549
"SlimMessageBus.Host.AsyncApi"
4650
)

docs/NuGet.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@ SlimMessageBus additionally provides request-response implementation over messag
66

77
Transports:
88

9+
- Amazon SQS/SNS
910
- Apache Kafka
1011
- Azure Event Hub
1112
- Azure Service Bus
1213
- Hybrid (composition of the bus out of many transports)
1314
- In-Memory transport (domain events, mediator)
1415
- MQTT / Azure IoT Hub
16+
- NATS
1517
- RabbitMQ
1618
- Redis
1719
- SQL (MS SQL, PostgreSql)
@@ -22,5 +24,6 @@ Plugins:
2224
- Transactional Outbox pattern (SQL, DbContext)
2325
- Serialization using JSON, Avro, ProtoBuf
2426
- AsyncAPI specification generation
27+
- Consumer Circuit Breaker based on Health Checks
2528

2629
Find out more [https://github.com/zarusz/SlimMessageBus](https://github.com/zarusz/SlimMessageBus).

docs/README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22

33
- [Introduction](intro.md)
44
- Providers
5+
- [Amazon SQS/SNS](provider_amazon_sqs.md)
56
- [Apache Kafka](provider_kafka.md)
6-
- [Azure Event Hubs](provider_azure_eventhubs.md)
7-
- [Azure Service Bus](provider_azure_servicebus.md)
7+
- [Azure EventHubs](provider_azure_eventhubs.md)
8+
- [Azure ServiceBus](provider_azure_servicebus.md)
89
- [Hybrid](provider_hybrid.md)
910
- [MQTT](provider_mqtt.md)
1011
- [Memory](provider_memory.md)
11-
- [RabbitMq](provider_rabbitmq.md)
12+
- [NATS](provider_nats.md)
13+
- [RabbitMQ](provider_rabbitmq.md)
1214
- [Redis](provider_redis.md)
1315
- [SQL](provider_sql.md)
14-
- [NATS](provider_nats.md)
1516
- [Serialization Plugins](serialization.md)

0 commit comments

Comments
 (0)