Kuestenlogik.Akka.Surgewave.Persistence 0.3.4

Prefix Reserved
dotnet add package Kuestenlogik.Akka.Surgewave.Persistence --version 0.3.4
                    
NuGet\Install-Package Kuestenlogik.Akka.Surgewave.Persistence -Version 0.3.4
                    
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="Kuestenlogik.Akka.Surgewave.Persistence" Version="0.3.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Kuestenlogik.Akka.Surgewave.Persistence" Version="0.3.4" />
                    
Directory.Packages.props
<PackageReference Include="Kuestenlogik.Akka.Surgewave.Persistence" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Kuestenlogik.Akka.Surgewave.Persistence --version 0.3.4
                    
#r "nuget: Kuestenlogik.Akka.Surgewave.Persistence, 0.3.4"
                    
#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.
#:package Kuestenlogik.Akka.Surgewave.Persistence@0.3.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Kuestenlogik.Akka.Surgewave.Persistence&version=0.3.4
                    
Install as a Cake Addin
#tool nuget:?package=Kuestenlogik.Akka.Surgewave.Persistence&version=0.3.4
                    
Install as a Cake Tool

Akka.Surgewave

Akka.NET integration packages for Surgewave — Akka.Streams sources/sinks/flows and an Akka.Persistence journal + snapshot store + read journal, both backed by Surgewave.

Two NuGet packages ship from this repository:

Package What it does Analogous to
Kuestenlogik.Akka.Surgewave.Streams Sources, Sinks and Flows for reactive Surgewave topic integration Akka.Streams.Kafka (Alpakka)
Kuestenlogik.Akka.Surgewave.Persistence Journal, Snapshot Store and Persistence Query backed by Surgewave topics, with Schema Registry support Akka.Persistence.SqlServer (SqlServer backend)

Naming. The Akka.* prefix on nuget.org is verified-reserved by the Akka.NET team (owner Akka). Third-party plugins either get donated to that account or ship under their own brand. Surgewave takes the second route — the Kuestenlogik.Akka.Surgewave.{Streams,Persistence} ids and namespaces sit under the Kuestenlogik brand. The .Surgewave. segment between Akka and Streams/Persistence is deliberate: it means our namespace never contains the substring Akka.Streams or Akka.Persistence, so the C# compiler can't confuse using Akka.Streams.Dsl; (the external Akka.NET package) with our own namespace tree.

Kuestenlogik.Akka.Surgewave.Streams

dotnet add package Kuestenlogik.Akka.Surgewave.Streams
using Kuestenlogik.Akka.Surgewave.Streams;

Features

  • PlainSource / CommittableSource — Consumer sources with backpressure and offset commit
  • PlainSink / FlexiFlow — Producer stages with delivery feedback and passthrough support
  • Transactional — End-to-end exactly-once consume-transform-produce pipelines
  • Committer — Batched offset commits with configurable intervals
  • Schema Registry — Typed serialization/deserialization via Surgewave Schema Registry
  • Partitioned Sources — Sub-source per partition for partition-local processing

Quick Start

var control = SurgewaveConsumer
    .CommittableSource(consumerSettings, Subscriptions.Topics("orders"))
    .SelectAsync(10, async msg =>
    {
        await ProcessOrder(msg.Record.Key, msg.Record.Value);
        return msg.CommittableOffset;
    })
    .ToMaterialized(
        Committer.Sink(CommitterSettings.Create(system)),
        DrainingControl<Done>.Create)
    .Run(materializer);

Kuestenlogik.Akka.Surgewave.Persistence

dotnet add package Kuestenlogik.Akka.Surgewave.Persistence
using Kuestenlogik.Akka.Surgewave.Persistence;

Features

  • AsyncWriteJournal — Surgewave-backed event journal with index-based fast replay
  • SnapshotStore — Compacted topic for automatic snapshot lifecycle
  • Persistence Query — EventsByPersistenceId, EventsByTag, AllEvents (live + current)
  • Two Serialization Modes — Opaque (Akka serializer passthrough) and Schema Registry (Protobuf/Avro/JSON)
  • Schema Registry Integration — Events become first-class citizens in the Surgewave ecosystem
  • Exactly-Once Semantics — Optional transactional writes for AtomicWrite guarantees
  • Multi-Tenancy — Topic prefix support for multiple actor systems on the same cluster

Quick Start

builder.Services.AddAkka("my-system", (akkaBuilder, sp) =>
{
    akkaBuilder
        .WithSurgewavePersistence(surgewave =>
        {
            surgewave.BootstrapServers = "localhost:9092";
            surgewave.Journal.Topic = "akka-journal";
            surgewave.Snapshots.Topic = "akka-snapshots";
            surgewave.SchemaRegistry.Url = "http://localhost:8081";
        })
        .WithSurgewaveReadJournal();
});

History

This repository consolidates the previously separate Akka.Streams.Surgewave and Akka.Persistence.Surgewave repositories (each at v0.1.1 on nuget.org under Kuestenlogik.Akka.Streams.Surgewave / Kuestenlogik.Akka.Persistence.Surgewave). v0.3.0 ships from this combined repo with the ids above; the old repos are archived with a pointer to this one. (A short-lived v0.2.0 used the interim ids Kuestenlogik.Surgewave.AkkaStreams / .AkkaPersistence; those are unlisted in favour of the Kuestenlogik.Akka.Surgewave.* ids.)

License

Apache-2.0

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.3.4 88 6/8/2026
0.3.3 100 6/6/2026
0.3.2 104 6/2/2026
0.3.1 100 5/31/2026