Beckett 0.9.12
See the version list below for details.
dotnet add package Beckett --version 0.9.12
NuGet\Install-Package Beckett -Version 0.9.12
<PackageReference Include="Beckett" Version="0.9.12" />
paket add Beckett --version 0.9.12
#r "nuget: Beckett, 0.9.12"
// Install Beckett as a Cake Addin #addin nuget:?package=Beckett&version=0.9.12 // Install Beckett as a Cake Tool #tool nuget:?package=Beckett&version=0.9.12
Beckett
Event sourcing is a powerful pattern for building applications but reading and writing events to an event store is only half of the equation. Beckett aims to fill in the gaps:
- Subscriptions - subscribe to messages and process them in order by stream
- Horizontal scalability - use auto-scaling to have as many workers as needed processing messages in parallel where the work is distributed automatically across all available nodes without needing to manage the distribution by way of consumer groups or similar mechanisms
- Retries - built-in retry support for failed messages - since messages are processed in order by stream per subscription, a failed message only blocks a single stream for a subscription at a time and the rest of the streams can continue processing for that subscription
- Scheduled / recurring messages - schedule messages to be sent at a future time with cancellation support, or create a recurring schedule to send messages at a regular interval using cron expressions for scheduled jobs, etc...
- Open Telemetry - built-in support to provide tracing and metrics
- Dashboard - browse messages, monitor metrics, retry failed subscriptions
- Bring Your Own Event Store - Beckett provides a simple Postgres-based message store or use your own by implementing the
IMessageStorage
interface
Usage
After installing the Beckett
package from NuGet, you can add Beckett to your worker like so:
var builder = Host.CreateApplicationBuilder(args);
builder.AddBeckett();
var host = builder.Build();
host.Run();
Add the Beckett dashboard to an ASP.NET Core application:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapBeckettDashboard("/beckett");
app.Run();
In this example, the dashboard will be available at http://localhost:<port>/beckett
and can be further configured using standard ASP.NET Core route group configuration options - authorization, etc...
Configuration
There are a number of options available in Beckett which can be configured inline or via standard .NET configuration:
builder.AddBeckett(
options =>
{
options.WithSubscriptions("TodoList");
});
Beckett?
Named after the Quantum Leap character Sam Beckett. Looking through a list of sci-fi character names it felt right. There was also going to be a whole thing about time traveling and event sourcing, but I'll spare you for now.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- Cronos (>= 0.8.4)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.1)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.1)
- Microsoft.Extensions.Hosting.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.1)
- Npgsql (>= 8.0.3)
- OpenTelemetry (>= 1.9.0)
- UUIDNext (>= 3.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Beckett:
Package | Downloads |
---|---|
Beckett.Dashboard
Messaging and event sourcing library |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.13.0 | 81 | 11/8/2024 |
0.12.6 | 356 | 11/1/2024 |
0.12.5 | 118 | 10/31/2024 |
0.12.4 | 172 | 10/30/2024 |
0.12.3 | 108 | 10/29/2024 |
0.12.2 | 119 | 10/29/2024 |
0.12.1 | 169 | 10/28/2024 |
0.12.0 | 94 | 10/28/2024 |
0.11.12 | 123 | 10/25/2024 |
0.11.11 | 199 | 10/22/2024 |
0.11.10 | 328 | 10/18/2024 |
0.11.9 | 136 | 10/18/2024 |
0.11.8 | 142 | 10/18/2024 |
0.11.7 | 135 | 10/18/2024 |
0.11.6 | 156 | 10/17/2024 |
0.11.5 | 96 | 10/17/2024 |
0.11.4 | 90 | 10/17/2024 |
0.11.3 | 87 | 10/17/2024 |
0.11.2 | 223 | 10/13/2024 |
0.11.1 | 121 | 10/12/2024 |
0.11.0 | 123 | 10/11/2024 |
0.10.4 | 94 | 10/8/2024 |
0.10.3 | 103 | 10/7/2024 |
0.10.2 | 73 | 10/7/2024 |
0.10.1 | 74 | 10/7/2024 |
0.10.0 | 75 | 10/7/2024 |
0.9.17 | 1,721 | 9/14/2024 |
0.9.16 | 125 | 9/14/2024 |
0.9.15 | 208 | 9/13/2024 |
0.9.14 | 108 | 9/13/2024 |
0.9.13 | 283 | 9/7/2024 |
0.9.12 | 99 | 9/6/2024 |
0.9.11 | 265 | 9/5/2024 |
0.9.10 | 348 | 9/4/2024 |
0.9.9 | 393 | 8/29/2024 |
0.9.8 | 90 | 8/29/2024 |
0.9.7 | 225 | 8/28/2024 |
0.9.6 | 190 | 8/27/2024 |
0.9.5 | 97 | 8/27/2024 |
0.9.4 | 563 | 8/16/2024 |
0.9.3 | 581 | 8/14/2024 |
0.9.2 | 399 | 8/12/2024 |
0.9.1 | 261 | 8/8/2024 |
0.9.0 | 294 | 8/5/2024 |
0.8.13 | 58 | 8/2/2024 |
0.8.12 | 59 | 8/2/2024 |
0.8.11 | 430 | 7/26/2024 |
0.8.10 | 99 | 7/25/2024 |
0.8.9 | 99 | 7/25/2024 |
0.8.8 | 281 | 7/21/2024 |
0.8.7 | 137 | 7/19/2024 |
0.8.6 | 86 | 7/19/2024 |
0.8.5 | 181 | 7/16/2024 |
0.8.4 | 110 | 7/16/2024 |
0.8.3 | 100 | 7/16/2024 |
0.8.2 | 186 | 7/13/2024 |
0.8.1 | 96 | 7/13/2024 |
0.8.0 | 90 | 7/13/2024 |
0.7.9 | 111 | 7/12/2024 |
0.7.8 | 95 | 7/12/2024 |
0.7.7 | 111 | 7/11/2024 |
0.7.6 | 100 | 7/10/2024 |
0.7.5 | 91 | 7/10/2024 |
0.7.4 | 117 | 7/10/2024 |
0.7.3 | 101 | 7/10/2024 |
0.7.2 | 91 | 7/9/2024 |
0.7.1 | 98 | 7/9/2024 |
0.7.0 | 98 | 7/9/2024 |