Skip to content

Commit

Permalink
Amazon.SQS transport
Browse files Browse the repository at this point in the history
Signed-off-by: Tomasz Maruszak <[email protected]>
  • Loading branch information
zarusz committed Nov 24, 2024
1 parent 1e78a38 commit b376942
Show file tree
Hide file tree
Showing 83 changed files with 2,790 additions and 255 deletions.
6 changes: 5 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ jobs:
--verbosity normal \
--logger "trx;LogFilePrefix=Integration" \
--collect:"XPlat Code Coverage;Format=opencover" \
--filter "Category=Integration&Transport=Outbox"
--filter "Category=Integration"
working-directory: ./src
env:
# Connects to the Azure cloud
Expand All @@ -111,6 +111,10 @@ jobs:
azure_eventhub_connectionstring: ${{ secrets.azure_eventhub_connectionstring }}
azure_storagecontainer_connectionstring: ${{ secrets.azure_storagecontainer_connectionstring }}

# Connects to AWS cloud
amazon_access_key: ${{ secrets.amazon_access_key }}
amazon_secret_access_key: ${{ secrets.amazon_secret_access_key }}

_kafka_brokers: ${{ secrets.kafka_brokers }}
_kafka_username: ${{ secrets.kafka_username }}
_kafka_password: ${{ secrets.kafka_password }}
Expand Down
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ 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 v2 release is available (see [migration guide](https://github.com/zarusz/SlimMessageBus/releases/tag/Host.Transport-2.0.0)).
- [Key elements of SlimMessageBus](#key-elements-of-slimmessagebus)
- [Docs](#docs)
Expand Down Expand Up @@ -47,6 +47,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 +70,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 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 Down
3 changes: 2 additions & 1 deletion build/tasks.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ $projects = @(
"SlimMessageBus.Host.Sql",
"SlimMessageBus.Host.Sql.Common",
"SlimMessageBus.Host.Nats",

"SlimMessageBus.Host.AmazonSQS",

"SlimMessageBus.Host.FluentValidation",

"SlimMessageBus.Host.Outbox",
Expand Down
1 change: 1 addition & 0 deletions docs/NuGet.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ SlimMessageBus additionally provides request-response implementation over messag

Transports:

- Amazon SQS/SNS
- Apache Kafka
- Azure Event Hub
- Azure Service Bus
Expand Down
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)
20 changes: 19 additions & 1 deletion docs/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@
- [Logging](#logging)
- [Debugging](#debugging)
- [Provider specific functionality](#provider-specific-functionality)
- [Topology Provisioning](#topology-provisioning)
- [Triggering Topology Provisioning](#triggering-topology-provisioning)

## Configuration

Expand Down Expand Up @@ -1142,4 +1144,20 @@ Providers:
- [Memory](provider_memory.md)
- [RabbitMQ](provider_rabbitmq.md)
- [Redis](provider_redis.md)
- [SQL](provider_sql.md)
- [SQL](provider_sql.md)

## Topology Provisioning

Most of the transport providers support the automatic creation of the needed messaging topology (queues, topics, subscriptions, etc).

### Triggering Topology Provisioning

Topology provisioning occurs when the bus is first created (e.g., at application startup). If the underlying topology changes (e.g., queues or topics are manually deleted), you may need to re-trigger provisioning programmatically:

```csharp
ITopologyControl ctrl = // injected
await ctrl.ProvisionTopology();
```

This allows to recreate missing elements in the infrastructure without restarting the whole application.
18 changes: 18 additions & 0 deletions docs/intro.t.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@
- [Logging](#logging)
- [Debugging](#debugging)
- [Provider specific functionality](#provider-specific-functionality)
- [Topology Provisioning](#topology-provisioning)
- [Triggering Topology Provisioning](#triggering-topology-provisioning)

## Configuration

Expand Down Expand Up @@ -1129,3 +1131,19 @@ Providers:
- [RabbitMQ](provider_rabbitmq.md)
- [Redis](provider_redis.md)
- [SQL](provider_sql.md)

## Topology Provisioning

Most of the transport providers support the automatic creation of the needed messaging topology (queues, topics, subscriptions, etc).

### Triggering Topology Provisioning

Topology provisioning occurs when the bus is first created (e.g., at application startup). If the underlying topology changes (e.g., queues or topics are manually deleted), you may need to re-trigger provisioning programmatically:

```csharp
ITopologyControl ctrl = // injected
await ctrl.ProvisionTopology();
```

This allows to recreate missing elements in the infrastructure without restarting the whole application.
Loading

0 comments on commit b376942

Please sign in to comment.