Kuestenlogik.Surgewave.AkkaStreams 0.2.0

Prefix Reserved
Suggested Alternatives

Kuestenlogik.Akka.Surgewave.Streams

The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package Kuestenlogik.Surgewave.AkkaStreams --version 0.2.0
                    
NuGet\Install-Package Kuestenlogik.Surgewave.AkkaStreams -Version 0.2.0
                    
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.Surgewave.AkkaStreams" Version="0.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Kuestenlogik.Surgewave.AkkaStreams" Version="0.2.0" />
                    
Directory.Packages.props
<PackageReference Include="Kuestenlogik.Surgewave.AkkaStreams" />
                    
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.Surgewave.AkkaStreams --version 0.2.0
                    
#r "nuget: Kuestenlogik.Surgewave.AkkaStreams, 0.2.0"
                    
#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.Surgewave.AkkaStreams@0.2.0
                    
#: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.Surgewave.AkkaStreams&version=0.2.0
                    
Install as a Cake Addin
#tool nuget:?package=Kuestenlogik.Surgewave.AkkaStreams&version=0.2.0
                    
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.Surgewave.AkkaStreams Sources, Sinks and Flows for reactive Surgewave topic integration Akka.Streams.Kafka (Alpakka)
Kuestenlogik.Surgewave.AkkaPersistence 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.Surgewave.Akka{Streams,Persistence} ids and namespaces sit under the Surgewave brand. Repo and packages stay aligned (AkkaStreams/AkkaPersistence as single tokens) so the C# compiler doesn't confuse using Akka.Streams.Dsl; with our own namespace tree.

Kuestenlogik.Surgewave.AkkaStreams

dotnet add package Kuestenlogik.Surgewave.AkkaStreams
using Kuestenlogik.Surgewave.AkkaStreams;

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.Surgewave.AkkaPersistence

dotnet add package Kuestenlogik.Surgewave.AkkaPersistence
using Kuestenlogik.Surgewave.AkkaPersistence;

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.2.0 ships from this combined repo with the new ids above; the old repos are archived with a pointer to this one.

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