Beckett 0.9.14

There is a newer version of this package available.
See the version list below for details.
dotnet add package Beckett --version 0.9.14                
NuGet\Install-Package Beckett -Version 0.9.14                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Beckett" Version="0.9.14" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Beckett --version 0.9.14                
#r "nuget: Beckett, 0.9.14"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Beckett as a Cake Addin
#addin nuget:?package=Beckett&version=0.9.14

// Install Beckett as a Cake Tool
#tool nuget:?package=Beckett&version=0.9.14                

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.9.17 1,037 9/14/2024
0.9.16 112 9/14/2024
0.9.15 196 9/13/2024
0.9.14 99 9/13/2024
0.9.13 272 9/7/2024
0.9.12 89 9/6/2024
0.9.11 238 9/5/2024
0.9.10 338 9/4/2024
0.9.9 388 8/29/2024
0.9.8 86 8/29/2024
0.9.7 221 8/28/2024
0.9.6 186 8/27/2024
0.9.5 93 8/27/2024
0.9.4 559 8/16/2024
0.9.3 577 8/14/2024
0.9.2 394 8/12/2024
0.9.1 258 8/8/2024
0.9.0 289 8/5/2024
0.8.13 55 8/2/2024
0.8.12 54 8/2/2024
0.8.11 427 7/26/2024
0.8.10 96 7/25/2024
0.8.9 96 7/25/2024
0.8.8 278 7/21/2024
0.8.7 135 7/19/2024
0.8.6 84 7/19/2024
0.8.5 179 7/16/2024
0.8.4 108 7/16/2024
0.8.3 98 7/16/2024
0.8.2 184 7/13/2024
0.8.1 94 7/13/2024
0.8.0 88 7/13/2024
0.7.9 109 7/12/2024
0.7.8 93 7/12/2024
0.7.7 109 7/11/2024
0.7.6 97 7/10/2024
0.7.5 88 7/10/2024
0.7.4 114 7/10/2024
0.7.3 98 7/10/2024
0.7.2 88 7/9/2024
0.7.1 96 7/9/2024
0.7.0 96 7/9/2024