Momentum.Abstractions
0.9.0
dotnet add package Momentum.Abstractions --version 0.9.0
NuGet\Install-Package Momentum.Abstractions -Version 0.9.0
<PackageReference Include="Momentum.Abstractions" Version="0.9.0" />
<PackageVersion Include="Momentum.Abstractions" Version="0.9.0" />
<PackageReference Include="Momentum.Abstractions" />
paket add Momentum.Abstractions --version 0.9.0
#r "nuget: Momentum.Abstractions, 0.9.0"
#:package Momentum.Abstractions@0.9.0
#addin nuget:?package=Momentum.Abstractions&version=0.9.0
#tool nuget:?package=Momentum.Abstractions&version=0.9.0
Momentum.Abstractions
The contracts of Momentum, an event-driven, multi-tenant workflow framework for .NET. This package has no dependencies and is what your domain code references:
IEvent/IExternalEvent/EventBase— event contracts (internal bus vs external broker)[Step]+ApiStepConfig/EventStepConfig<T>/ExternalEventStepConfig<T>/CronStepConfig— step declarations consumed byMomentum.SourceGeneratorStepResult— step outcomes mapped to HTTP responses by the generated endpointsIMomentumBus/IMomentumPublisher— publish internal/external events from stepsScheduleAsyncextensions /IScheduledMomentumBus— opt-in durable delayed internal delivery; the runtime binds schedules to the tenant business transactionMomentumMessageContext.ScheduledMessageId— stable scheduled-message identity during handling, retry, and replayMomentum.Infrastructure— store contracts (IInfrastructureStoreand its facets), records, filters and status constants for back-office toolingMomentum.Metadata/Momentum.Upcasting— step/topology metadata and event contract upcasting
Install
dotnet add package Momentum.Abstractions
Application projects normally use this package together with
Momentum.SourceGenerator for compile-time code generation and Momentum.Runtime
for hosting.
Define an event and API step
using Momentum;
public sealed record UserCreated(Guid UserId, string Email) : EventBase;
[Step]
public static partial class CreateUserStep
{
public static ApiStepConfig Config => new()
{
Name = "CreateUser",
Path = "/users",
Method = HttpVerb.Post,
Emits = [typeof(UserCreated)]
};
public static async Task<StepResult> Execute(
CreateUserRequest request,
IMomentumBus bus,
Guid tenantId)
{
var userId = Guid.NewGuid();
await bus.PublishAsync(new UserCreated(userId, request.Email)
{
TenantId = tenantId
});
return StepResult.Created($"/users/{userId}", new { userId });
}
}
Step classes must be static partial, carry [Step], and expose a supported
Config property plus a public static Execute method. The source generator reports
invalid definitions with MOM0xx build diagnostics.
License
Momentum is free for qualifying non-commercial open-source projects. Commercial use requires a separate written license agreement. The complete terms are included in the package.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Momentum.Abstractions:
| Package | Downloads |
|---|---|
|
Momentum.Runtime
Runtime infrastructure for Momentum: event routing, multi-tenant channels, execution recording, and PostgreSQL persistence. |
|
|
Momentum.OpenTelemetry
Optional OpenTelemetry and OTLP integration for Momentum logs, metrics, and traces. |
|
|
Momentum.Testing
Test harness for Momentum: in-memory bus, flow orchestration, and step testing utilities. |
GitHub repositories
This package is not used by any popular GitHub repositories.