Skip to main content

Getting Started

Let's discover TransactionalBox in less than 3 minutes. Example shows in-memory implementation.

Configuration​

Install packages​

dotnet add package TransactionalBox

Register​

using TransactionalBox;
builder.Services.AddTransactionalBox(x =>
{
x.AddOutbox();

x.AddInbox();
},
settings => settings.ServiceId = "ServiceName");

Usage​

Outbox​

Declare outbox message​

public sealed class ExampleMessage : OutboxMessage
{
public string Name { get; init; }

public int Age { get; init; }
}

Add message to outbox​

public sealed class AddMessageToOutbox
{
private readonly IOutbox _outbox;

public AddMessageToOutbox(IOutbox outbox)
{
_outbox = outbox;
}

public async Task Example()
{
var message = new ExampleMessage()
{
Name = "Name",
Age = 25,
};

await _outbox.Add(message);
await _outbox.TransactionCommited();
}
}

Inbox​

Declare inbox message​

public sealed class ExampleMessage : InboxMessage
{
public string Name { get; init; }

public int Age { get; init; }
}

Handle message​

internal sealed class ExampleMessageHandler : IInboxHandler<ExampleMessage>
{
public async Task Handle(ExampleMessage message, IExecutionContext executionContext)
{
// Your Logic
}
}

Summary​

Follow the workflow of your code with breakpoints. Enjoy learning 😜.