Skip to content

Feat: Add Integration for LavinMQ #477

Closed
Closed
@prom3theu5

Description

@prom3theu5

Related to an existing integration?

No

Existing integration

No response

Overview

Add support for a LavinMQ container resource.
LavinMQ is a wire compatible AMQP server thats a drop in replacement for RabbitMQ.
It's largely more performant, requiring less system resources (about 30mb ram for example at idle) to run.

https://lavinmq.com/

Unlike RabbitMQ which uses a plugin based approach, the management console is built into the lavinmq binary and always enabled.

This integration would be compatible with the existing MassTransit.RabbitMQ package

Usage example

var builder = DistributedApplication.CreateBuilder(args);

var lavinmq = builder.AddLavinMQ(
        name: "lavinmq",
        port: 5672,
        managementPort: 15672)
    .WithExternalHttpEndpoints();

var api = builder.AddProject<Projects.CommunityToolkit_Aspire_MassTransit_RabbitMQ_ApiService>("api")
    .WithReference(lavinmq).WaitFor(lavinmq);

builder.AddProject<Projects.CommunityToolkit_Aspire_MassTransit_RabbitMQ_Publisher>("publisher")
    .WaitFor(api).WaitFor(lavinmq).WithReference(lavinmq);

builder.Build().Run();

Breaking change?

No

Alternatives

var builder = DistributedApplication.CreateBuilder(args);

var rmq = builder.AddRabbitMQ(
        name: "rmq",
        port: 5672)
    .WithExternalHttpEndpoints()
    .WithManagementPlugin(port: 15672);

var api = builder.AddProject<Projects.CommunityToolkit_Aspire_MassTransit_RabbitMQ_ApiService>("api")
    .WaitFor(rmq).WithReference(rmq);

builder.AddProject<Projects.CommunityToolkit_Aspire_MassTransit_RabbitMQ_Publisher>("publisher")
    .WaitFor(api).WaitFor(rmq).WithReference(rmq);

builder.Build().Run();

Additional context

No response

Help us help you

Yes, I'd like to be assigned to work on this item

Metadata

Metadata

Assignees

No one assigned

    Labels

    integrationA new .NET Aspire integration

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions