Documentation Index Fetch the complete documentation index at: https://easyaf.dev/llms.txt
Use this file to discover all available pages before exploring further.
Get SimpleMessageBus working in your application with just a few simple steps.
Step 1: Install the Package
Choose the provider that matches your infrastructure:
Azure Storage Queue
Amazon SQS
File System
Blazor WebAssembly
dotnet add package SimpleMessageBus.Publish.Azure
dotnet add package SimpleMessageBus.Dispatch.Azure
Step 2: Define Your Message
Create a message class that implements IMessage:
using SimpleMessageBus . Core ;
public class UserCreatedMessage : IMessage
{
public string UserId { get ; set ; }
public string Email { get ; set ; }
public DateTime CreatedAt { get ; set ; }
}
Step 3: Create a Message Handler
Implement IMessageHandler<T> to process your messages:
using SimpleMessageBus . Core ;
public class UserCreatedHandler : IMessageHandler < UserCreatedMessage >
{
private readonly ILogger < UserCreatedHandler > _logger ;
public UserCreatedHandler ( ILogger < UserCreatedHandler > logger )
{
_logger = logger ;
}
public async Task HandleAsync ( UserCreatedMessage message )
{
_logger . LogInformation ( "User created: {UserId} - {Email}" ,
message . UserId , message . Email );
// Process the message (send welcome email, update database, etc.)
await ProcessUserCreation ( message );
}
private async Task ProcessUserCreation ( UserCreatedMessage message )
{
// Your business logic here
await Task . Delay ( 100 ); // Simulate processing
}
}
Add SimpleMessageBus to your dependency injection container:
Azure Storage Queue
Amazon SQS
File System
Blazor WebAssembly
using SimpleMessageBus . Publish . Azure . Extensions ;
using SimpleMessageBus . Dispatch . Azure . Extensions ;
var builder = WebApplication . CreateBuilder ( args );
// Configure Azure Storage Queue
builder . Services . AddSimpleMessageBusAzureStoragePublisher ( options =>
{
options . ConnectionString = builder . Configuration . GetConnectionString ( "AzureStorage" );
});
builder . Services . AddSimpleMessageBusAzureStorageDispatcher ( options =>
{
options . ConnectionString = builder . Configuration . GetConnectionString ( "AzureStorage" );
});
// Register your message handler
builder . Services . AddScoped < IMessageHandler < UserCreatedMessage >, UserCreatedHandler >();
var app = builder . Build ();
Step 5: Publish Messages
Inject IMessagePublisher and publish messages:
public class UserController : ControllerBase
{
private readonly IMessagePublisher _messagePublisher ;
public UserController ( IMessagePublisher messagePublisher )
{
_messagePublisher = messagePublisher ;
}
[ HttpPost ]
public async Task < IActionResult > CreateUser ([ FromBody ] CreateUserRequest request )
{
// Create the user (your business logic)
var userId = await CreateUserInDatabase ( request );
// Publish the message
var message = new UserCreatedMessage
{
UserId = userId ,
Email = request . Email ,
CreatedAt = DateTime . UtcNow
};
await _messagePublisher . PublishAsync ( message );
return Ok ( new { UserId = userId });
}
}
Step 6: Start Processing
The message dispatcher will automatically start processing messages when your application starts. For Azure Functions or console applications, you might need additional configuration.
Next Steps
Congratulations! You now have SimpleMessageBus running in your application. Here are some next steps:
Learn Core Concepts Understand messages, publishers, and handlers
Provider Configuration Deep dive into provider-specific configuration
Testing Guide Learn how to test your message handlers
API Reference Explore the complete API documentation
Example Application
For a complete working example, check out our sample applications on GitHub.