
KNet for OPC (KNetOPC): OPC-UA suite for Apache Kafka™
Connect your OPC-UA infrastructure to Apache Kafka™ — without writing a single line of broker code.
KNet for OPC (KNetOPC) is a production-ready OPC-UA suite for Apache Kafka™ that turns any OPC-UA server into a real-time event stream. It ships as standard Kafka Connect plugins, integrates into your existing Kafka infrastructure in minutes, and gives .NET teams a direct path from industrial data to strongly-typed application code — with no custom consumer plumbing required.
Note
KNet for OPC (KNetOPC) is built on KNet: a comprehensive .NET suite for Apache Kafka™ that provides direct access to all Apache Kafka™ APIs — Producer, Consumer, Admin, Streams, Connect, and KRaft backend support. KNetOPC uses KNet client-side features, which communicate with the broker exclusively through the Kafka wire protocol and are therefore compatible with any broker that implements it — see Backend compatibility below.
What KNetOPC provides
KNetOPC is composed of four components that can be deployed independently or combined into a complete OT/IT integration pipeline:
| Component | What it does |
|---|---|
| Source Connector | Subscribes to any OPC-UA server and streams change notifications into one or more Kafka topics — with configurable encoding (JSON, XML, Binary), per-node topic routing, and multi-task parallelism. |
| Sink Connector | Receives commands from a Kafka topic, executes them on an OPC-UA server (Read, Write, Call, and more), and publishes the response to a separate reply topic — enabling full request/response interaction with the OPC-UA server over Kafka. |
| Predicates | Filter change notifications at the connector level — before they reach the broker — using built-in OPC-UA–aware conditions (status code, value range, staleness). No broker-side filtering required. |
| KEFCore integration | An optional transformation layer that converts OPC-UA source records into the format consumed by KEFCore — the Entity Framework Core provider for Apache Kafka™. .NET developers can then query live OPC-UA data using standard LINQ, with no Kafka consumer code. |
| Client library | The NuGet package MASES.KNet.OPC.Client provides two complementary classes: KNetOPCSinkClient (implements ISessionClient over the Sink connector for request/response OPC-UA operations) and KNetOPCSourceClient (consumes MonitoredItemNotification records from the Source connector topic). Together they cover the full OPC-UA interaction model over Kafka. |
Who KNetOPC is for
OT/IT architects and integration engineers get a standards-based bridge between their OPC-UA plant floor and the enterprise event backbone — deployed as a Kafka Connect plugin, managed through the standard Connect REST API, and compatible with any Kafka-protocol broker.
.NET development teams get an optional higher-level layer: with KEFCore integration, OPC-UA data becomes a typed EF Core data source. Combined with ASP.NET Core SignalR, the same pipeline can drive live dashboards and real-time UIs directly from plant data, with no additional middleware.
Backend compatibility
KNetOPC uses the official Apache Kafka™ Java client packages directly through KNet client-side features. Client-side features — Producer, Consumer, Admin Client, Kafka Streams, KNet Streams SDK, KNet Connect SDK — communicate with the broker exclusively through the Kafka wire protocol and are therefore compatible with any broker that implements it, not only Apache Kafka™ itself.
This means KNetOPC works out of the box with: Redpanda, Amazon MSK, Confluent Platform / Cloud, Aiven for Apache Kafka™, IBM Event Streams, WarpStream, AutoMQ, and others — no vendor lock-in.
See Supported Backends for the full compatibility matrix.
Compatibility
The table below shows the supported combinations of Apache Kafka™ version, coordinator mode, Kafka Connect deployment mode, and .NET runtime.
| Apache Kafka™ | Coordinator | Connect mode | .NET runtime | KEFCore integration |
|---|---|---|---|---|
| 3.9.x | ZooKeeper | Standalone, Distributed | .NET 8, .NET 10, .NET Framework | .NET 8, .NET 10 |
| 3.9.x | KRaft | Standalone, Distributed | .NET 8, .NET 10, .NET Framework | .NET 8, .NET 10 |
| 4.x.x | KRaft only | Standalone, Distributed | .NET 8, .NET 10, .NET Framework | .NET 8, .NET 10 |
Note
Apache Kafka™ 4.x removes ZooKeeper entirely. KRaft is the only supported coordinator mode from Kafka 4.0 onwards.
Note
KEFCore integration requires .NET 8 or .NET 10. .NET Framework is supported for the connectors and predicates only.
Professional support
MASES Group can support your team at every stage of an OPC-UA / Kafka integration project — from architecture design to production deployment. See Professional support for the full range of services available.
Documentation
- Supported backends
- Connectors
- Client library
- Predicates
- KEFCore integration
Runtime engine
KNetOPC uses KNet, and therefore JCOBridge with its features, to run the JVM™ and CLR/CoreCLR in the same process — insulated from each other, communicating exclusively through JNI with no code injection and no extra network hop.
This architecture gives KNetOPC direct access to every Apache Kafka™ Java API — Producer, Consumer, Streams, Connect — exposed in idiomatic C# style. Bug fixes and new features from upstream Apache Kafka™ Java clients are available immediately, without a re-validation cycle.
Note
JCOBridge 2.6.* can be used for free without any obligations. A commercial license must be purchased — or the software uninstalled — if you derive direct or indirect income from its usage.
JCOBridge resources: Release notes · Community Edition · Commercial Edition
KAFKA is a registered trademark of The Apache Software Foundation. KNet has no affiliation with and is not endorsed by The Apache Software Foundation.
