NServiceBus.AwsLambda.SQS - Public preview release available

Hi everyone,

We’ve just released a public preview version of NServiceBus.AwsLambda.SQS.

With NServiceBus.AwsLambda.SQS you can deploy your message handlers to AWS as Lambda functions. The powerful NServiceBus programming model, combined with AWS Lambda, makes it a breeze to build easy-to-deploy, scalable, pay-as-you-go distributed systems.

NServiceBus.AwsLambda.SQS allows AWS Lambda to do the heavy lifting of deployment and runtime management, while benefiting from all the usual NServiceBus features:

  • Full compatibility with NServiceBus endpoints
  • Immediate and delayed retries
  • Stateful message processing with NServiceBus Sagas
  • Auditing
  • Dependency injection support
  • Advanced pipeline extensibility
  • and more…

Getting Started

NServiceBus.AwsLambda.SQS makes endpoint configuration super simple:

static readonly IAwsLambdaSQSEndpoint endpoint = new AwsLambdaSQSEndpoint(context =>
{
    var endpointConfiguration = new AwsLambdaSQSEndpointConfiguration("AwsLambdaSQSTrigger");
    
    //customize configuration here

    return endpointConfiguration;
});


public async Task FunctionHandler(SQSEvent evnt, ILambdaContext context)
{
    var cancellationDelay = context.RemainingTime.Subtract(TimeSpan.FromSeconds(10));
    using (var cancellationTokenSource = new CancellationTokenSource(cancellationDelay))
    {
        await endpoint.Process(evnt, context, cancellationTokenSource.Token);
    }
}

With the configuration done, just add message handlers for any message type received by the function:

public class TriggerMessageHandler : IHandleMessages<TriggerMessage>
{
    static readonly ILog Log = LogManager.GetLogger<TriggerMessageHandler>();

    public Task Handle(TriggerMessage message, IMessageHandlerContext context)
    {
        Log.Info($"Handling {nameof(TriggerMessage)} in {nameof(TriggerMessageHandler)}");
        return context.SendLocal(new FollowupMessage());
    }
}

About the public preview

The NServiceBus.AwsLambda.SQS package is released as a public preview. Preview components are offered under a more permissive license and are production-ready packages, aiming to react more quickly to customer’s needs. See the support policy for previews for more information about our support commitment. Preview packages may transition to fully supported versions after the preview period.

User adoption is crucial during this product development phase and helps us decide whether to make NServiceBus.AwsLambda.SQS a permanent part of the Particular Platform. Please let us know if you are using this preview by emailing us at support@particular.net.

We’d also love to receive your feedback about the new NServiceBus.AwsLambda.SQS package via our support channels, the project repository, or our public previews discussion group.

Where to get it

You can install the preview from NuGet.

With thanks,
The team in Particular

Please read our release policy for more details. Follow @ParticularNews to be notified of new releases and bug fixes.