Skip to content

Commit 4164dd7

Browse files
author
Matt Howlett
authored
Updates for KIP-447 (confluentinc#1516)
* Updates for KIP-447 * changes following review * Version number in ExactlyOnce example * nuget package manager
1 parent 5e83301 commit 4164dd7

File tree

13 files changed

+1028
-28
lines changed

13 files changed

+1028
-28
lines changed

Confluent.Kafka.sln

+16-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Protobuf", "examples\Protob
4949
EndProject
5050
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Confluent.Kafka.SyncOverAsync", "test\Confluent.Kafka.SyncOverAsync\Confluent.Kafka.SyncOverAsync.csproj", "{07E3455B-9CDF-4124-854E-8AC9B8950B1A}"
5151
EndProject
52-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Transactions", "examples\Transactions\Transactions.csproj", "{C44F96F6-4711-4DB9-A00E-9FA6456513B9}"
52+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExactlyOnce", "examples\ExactlyOnce\ExactlyOnce.csproj", "{C44F96F6-4711-4DB9-A00E-9FA6456513B9}"
5353
EndProject
5454
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Confluent.Kafka.Transactions", "test\Confluent.Kafka.Transactions\Confluent.Kafka.Transactions.csproj", "{2A6D1D58-4F02-480E-8A9C-F2A0D0BC911C}"
5555
EndProject
@@ -61,6 +61,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Confluent.SchemaRegistry.Se
6161
EndProject
6262
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Confluent.SchemaRegistry.Serdes.Json", "src\Confluent.SchemaRegistry.Serdes.Json\Confluent.SchemaRegistry.Serdes.Json.csproj", "{98D7F3E1-80EE-437C-8915-528BFD80E9B2}"
6363
EndProject
64+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExactlyOnceOldBroker", "examples\ExactlyOnceOldBroker\ExactlyOnceOldBroker.csproj", "{8F582FFF-EA30-47F1-89D2-81A37F5E7E0C}"
65+
EndProject
6466
Global
6567
GlobalSection(SolutionConfigurationPlatforms) = preSolution
6668
Debug|Any CPU = Debug|Any CPU
@@ -386,6 +388,18 @@ Global
386388
{98D7F3E1-80EE-437C-8915-528BFD80E9B2}.Release|x64.Build.0 = Release|Any CPU
387389
{98D7F3E1-80EE-437C-8915-528BFD80E9B2}.Release|x86.ActiveCfg = Release|Any CPU
388390
{98D7F3E1-80EE-437C-8915-528BFD80E9B2}.Release|x86.Build.0 = Release|Any CPU
391+
{8F582FFF-EA30-47F1-89D2-81A37F5E7E0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
392+
{8F582FFF-EA30-47F1-89D2-81A37F5E7E0C}.Debug|Any CPU.Build.0 = Debug|Any CPU
393+
{8F582FFF-EA30-47F1-89D2-81A37F5E7E0C}.Debug|x64.ActiveCfg = Debug|Any CPU
394+
{8F582FFF-EA30-47F1-89D2-81A37F5E7E0C}.Debug|x64.Build.0 = Debug|Any CPU
395+
{8F582FFF-EA30-47F1-89D2-81A37F5E7E0C}.Debug|x86.ActiveCfg = Debug|Any CPU
396+
{8F582FFF-EA30-47F1-89D2-81A37F5E7E0C}.Debug|x86.Build.0 = Debug|Any CPU
397+
{8F582FFF-EA30-47F1-89D2-81A37F5E7E0C}.Release|Any CPU.ActiveCfg = Release|Any CPU
398+
{8F582FFF-EA30-47F1-89D2-81A37F5E7E0C}.Release|Any CPU.Build.0 = Release|Any CPU
399+
{8F582FFF-EA30-47F1-89D2-81A37F5E7E0C}.Release|x64.ActiveCfg = Release|Any CPU
400+
{8F582FFF-EA30-47F1-89D2-81A37F5E7E0C}.Release|x64.Build.0 = Release|Any CPU
401+
{8F582FFF-EA30-47F1-89D2-81A37F5E7E0C}.Release|x86.ActiveCfg = Release|Any CPU
402+
{8F582FFF-EA30-47F1-89D2-81A37F5E7E0C}.Release|x86.Build.0 = Release|Any CPU
389403
EndGlobalSection
390404
GlobalSection(NestedProjects) = preSolution
391405
{09C3255B-1972-4EB8-91D0-FB9F5CD82BCB} = {1EFCD839-0726-4BCE-B745-1E829991B1BC}
@@ -414,5 +428,6 @@ Global
414428
{1B2C48B7-FD1D-4457-9E5B-80EBB7A28104} = {1EFCD839-0726-4BCE-B745-1E829991B1BC}
415429
{3BE5B540-43FC-4945-ACE5-88BB6B0D846E} = {1EFCD839-0726-4BCE-B745-1E829991B1BC}
416430
{98D7F3E1-80EE-437C-8915-528BFD80E9B2} = {1EFCD839-0726-4BCE-B745-1E829991B1BC}
431+
{8F582FFF-EA30-47F1-89D2-81A37F5E7E0C} = {9CE4B5F7-9251-4340-BACB-207066A5DBE8}
417432
EndGlobalSection
418433
EndGlobal

README.md

+8-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ Note: `Confluent.Kafka` depends on the `librdkafka.redist` package which provide
5858
### Branch builds
5959

6060
Nuget packages corresponding to all commits to release branches are available from the following nuget package source (Note: this is not a web URL - you
61-
should specify it in the nuget package manger):
61+
should specify it in the nuget package manager):
6262
[https://ci.appveyor.com/nuget/confluent-kafka-dotnet](https://ci.appveyor.com/nuget/confluent-kafka-dotnet). The version suffix of these nuget packages
6363
matches the appveyor build number. You can see which commit a particular build number corresponds to by looking at the
6464
[AppVeyor build history](https://ci.appveyor.com/project/ConfluentClientEngineering/confluent-kafka-dotnet/history)
@@ -206,6 +206,13 @@ The [Web](https://github.com/confluentinc/confluent-kafka-dotnet/tree/master/exa
206206
Apache Kafka with a web application, including how to implement `IHostedService` to realize a long running consumer poll loop, how to
207207
register a producer as a singleton service, and how to bind configuration from an injected `IConfiguration` instance.
208208

209+
### Exactly Once Processing
210+
211+
The .NET Client has full support for transactions and idempotent message production, allowing you to write horizontally scalable stream
212+
processing applications with exactly once semantics. The [ExactlyOnce](examples/ExactlyOnce) example demonstrates this capability by way
213+
of an implementation of the classic "word count" problem, also demonstrating how to use the [FASTER](https://github.com/microsoft/FASTER)
214+
Key/Value store (similar to RocksDb) to materialize working state that may be larger than available memory, and incremental rebalancing
215+
to avoid stop-the-world rebalancing operations and unnecessary reloading of state when you add or remove processing nodes.
209216

210217
### Schema Registry Integration
211218

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<ProjectTypeGuids>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
5+
<AssemblyName>ExactlyOnce</AssemblyName>
6+
<TargetFramework>netcoreapp2.1</TargetFramework>
7+
<OutputType>Exe</OutputType>
8+
<LangVersion>7.3</LangVersion>
9+
</PropertyGroup>
10+
11+
<ItemGroup>
12+
<!-- nuget package reference: <PackageReference Include="Confluent.Kafka" Version="1.6.1-RC2" /> -->
13+
<ProjectReference Include="../../src/Confluent.Kafka/Confluent.Kafka.csproj" />
14+
<PackageReference Include="Microsoft.FASTER.Core" Version="1.8.0" />
15+
</ItemGroup>
16+
17+
</Project>

0 commit comments

Comments
 (0)