Producing and consuming Kafka over HTTP

Learn how HTTP-only clients can produce and consume Kafka through a REST proxy, what to put in front of it, and where throughput limits will bite.

On this page

Why HTTP access to Kafka needs a proxy and a clear limit

An HTTP-only client, such as a backend service, a scheduled script or a browser-side tool, cannot speak the binary protocol that a Kafka broker uses natively. If your cluster is self-hosted and that client must produce or consume messages, you need a REST proxy layer between the two. The two routes this topic covers are the Strimzi HTTP Bridge and the Karapace REST proxy. Both sit between HTTP callers and native Kafka clients, translate requests into Kafka operations and keep the Kafka cluster itself unchanged. Choosing one is a platform decision as much as a connectivity one, because the proxy becomes a new component with its own deployment, scaling, certificates and upgrade cycle.

Treat the proxy as a boundary with a stated limit, not as a transparent stand-in for a native client. Each HTTP request adds a hop, serialization work and a stateful consumer model that a native consumer does not have. Consumer instances, offset handling and the rate at which a proxy can move records all differ from what a Java or librdkafka client gets from the Kafka protocol directly. Before you build, write down the expected message rate, the number of consumers and whether a lost or repeated delivery matters to the business. Then confirm with the proxy project's documentation and your own load tests how it behaves at that volume. The proxy's throughput, supported features and version compatibility with your broker release are things to verify in your environment, not assume from this page.

Authentication and authorization also move up a layer. Kafka's own SASL and TLS settings protect the connection between the proxy and the brokers, but the HTTP side needs its own control, such as an API gateway or identity-aware reverse proxy in front of it. Plan which identities may call which topics, how credentials are rotated and where requests are logged. Use the documented Kafka authorization model for the proxy's broker identity, and confirm with the proxy vendor which HTTP authentication options it supports natively. Where HTTP-only clients are a minority, a narrow proxy with explicit topic access is usually easier to defend than exposing the cluster to many new callers.

What you need in place before you expose Kafka over HTTP

An HTTP proxy is only as safe and reliable as the Kafka cluster behind it. The cards below cover the release, client runtime, security settings and network paths that should be settled before any HTTP client touches a topic. Confirm each item against your own environment before the proxy is deployed.

Supported Kafka 4.x release on KRaft

Start from a release listed as supported on the Kafka downloads page: 4.1.2, 4.2.2 or 4.3.1. Clusters must run in KRaft mode, because Kafka 4.0 removed ZooKeeper mode, so a ZooKeeper-based cluster needs migrating before it is exposed through any proxy. Confirm the proxy version you plan to run is compatible with your chosen Kafka release in the proxy's own project documentation before you pin both versions.

Java runtime for the proxy and clients

Since Kafka 4.0, brokers and tools require Java 17, while clients and Kafka Streams applications need at least Java 11. Check the Java version of the proxy runtime separately from the brokers, because the proxy embeds its own Kafka client and inherits that requirement. Record the runtime in your image or host baseline so patching the JVM is tracked alongside Kafka upgrades.

Authentication on the listeners

Kafka supports SSL and SASL authentication, with the documented SASL mechanisms GSSAPI, PLAIN, SCRAM-SHA-256, SCRAM-SHA-512 and OAUTHBEARER. Decide which mechanism the proxy uses to log in as a service identity, and create that identity before enabling the listener. Avoid leaving an unsecured listener open for convenience, since security is optional in Kafka and a plaintext listener would bypass the proxy's controls.

ACLs that define what each HTTP client can do

In KRaft clusters, the StandardAuthorizer stores ACLs in the metadata log, and resources without ACLs are restricted to super users unless allow.everyone.if.no.acl.found is set to true. Grant the proxy's service identity only the topic, group and cluster operations it needs. Keep the per-client mapping, such as which HTTP caller reaches which topic, in a document the proxy configuration can be checked against.

TLS on every client-facing listener

Encrypt traffic between the proxy and brokers with SSL/TLS, and make sure the HTTP side is also encrypted, since HTTP callers send credentials and payloads across the network. Plan certificate issuance, rotation and trust stores for both the broker listener and the proxy before go-live. Verify that no plaintext listener remains enabled for the proxy's bootstrap servers.

Network paths from proxy to brokers

The proxy must reach every broker address that clients advertise, not just the bootstrap address. Confirm that advertised listeners resolve to addresses the proxy can route to, that firewall rules allow the broker ports, and that DNS and load balancers preserve connections correctly. Test failover by stopping one broker and confirming the proxy reconnects, because a bootstrap-only test will hide this problem.

How to stand up an HTTP bridge in front of Kafka

This sequence takes an HTTP-only client from no access to a verified produce and consume path through a bridge, with the bridge's own identity, scoped topic permissions and encrypted endpoints. Each step ends with a check you can run before moving on.

  1. Choose the proxy and its deployment target

    Your platform team picks between the Strimzi HTTP Bridge and the Karapace REST proxy based on how Kafka is already deployed, which REST API surface your clients call, and whether you already run the Karapace Schema Registry. Confirm the chosen version's compatibility with your brokers and Java or runtime requirements in the project documentation, and record the decision with the owner of the platform. Done when the team has a written choice, a target environment (Kubernetes namespace, VM or container host) and a named owner for the proxy.

  2. Deploy the proxy with its own broker credentials

    Deploy the proxy as its own workload in infrastructure you control, configured with a dedicated service identity for connecting to the brokers. Use SASL or mutual TLS for that identity, not a shared administrator account, and keep its credentials in your secrets store. The check is that the proxy starts, reports healthy, and its broker connection shows as established in the proxy logs and the broker's connection metrics.

  3. Create topics and ACLs for HTTP identities

    Create the topics the HTTP clients need with partition counts and retention set during planning, then grant each client identity only the operations it needs, such as Write on specific topics for producers and Read on specific topics and consumer groups for consumers. In KRaft clusters, ACLs live in the metadata log, and resources without ACLs are limited to super users unless you have set allow.everyone.if.no.acl.found to true, so confirm that setting is off. The check is a denied request from an identity without grants and a successful request from one with them.

  4. Enable TLS on the HTTP endpoint

    Terminate TLS on the HTTP endpoint with a certificate issued by your internal or public CA, and decide whether clients authenticate with tokens or certificates at the edge. Put the proxy behind your existing gateway or ingress if your standards require it, and confirm that plain HTTP is disabled for client traffic. Verify with a TLS handshake check against the public hostname and confirm the certificate chain is trusted by the client runtime.

  5. Create a test producer and a consumer instance

    Using a test identity, create a consumer instance in a named consumer group through the proxy's REST interface and subscribe it to a test topic. Keep the instance name and base URI, because later requests depend on them. Confirm that the instance is created and returns its identifiers without error. This creates the state you will verify in the next step.

  6. Produce a known record and verify the offset

    Send a produce request with a recognizable test payload to the test topic over HTTPS. The check is that the response contains a partition and an offset, and that the offset increases on a second request. Then have the consumer instance fetch records and confirm it reads the known payload at the returned offset. Record the offset and consumer group position so later changes can be compared against this baseline.

  7. Confirm consumer offsets and clean up the test

    Commit offsets through the consumer instance, then check the consumer group's committed offset with the Kafka admin tools to confirm it matches what the HTTP client reported. Delete the consumer instance and the test topic or purge its records, and remove any test identities. The check is that the group shows the committed offset and that the test instance no longer appears as active in the proxy. Keep the test procedure in your runbook for future upgrades.

Strimzi HTTP Bridge or Karapace REST: which fits your platform

Choose the Strimzi HTTP Bridge when Kafka already runs on Kubernetes under Strimzi and the operator manages your brokers, users and topics. The bridge is deployed alongside the cluster, so it fits the GitOps, RBAC and certificate workflows your platform team already uses. It does not provide a schema service, so teams that need schemas will run and govern a separate registry.

  • Deployment model: The bridge is declared as a Kubernetes resource and reconciled by the Strimzi operator, so its configuration can live in the same repository as the cluster.
  • Authentication: Confirm which client authentication options your bridge version supports and how they map to the Kafka users you already define.
  • Scope: Its job is HTTP access to topics. Schema management and compatibility checks are outside it.
  • Operations: Your Kubernetes team carries patching, scaling and certificate rotation for the bridge pods.

Check the Strimzi release notes against your Kafka version and the consumer instance behavior you need before you commit.

How consumer instances, offsets and commits work over HTTP

How do HTTP consumer instances differ from native Kafka consumers?

An HTTP proxy creates a consumer instance on the server side when a client registers, and that instance holds group membership, partition assignment and fetch position on the client's behalf. A native client keeps this state in its own process and handles rebalances itself. Over HTTP, your client holds only an instance name or URL and perhaps a token, so every instance is a resource the proxy must track until it is deleted or expires. The exact registration, subscription and fetch calls depend on the proxy. The Strimzi HTTP Bridge and Karapace expose different endpoints and lifecycle behavior, so confirm the sequence against the documentation for the version you deploy before you write client code.

When are offsets committed for an HTTP consumer?

Offsets move forward only when a commit succeeds, so the commit mode configured in the proxy and in your client decides whether progress advances without your code acknowledging the work. Check whether the proxy auto-commits, how often it does so, and whether a commit covers everything fetched or only what your client has named. If you commit manually, make the order explicit in your code: process the records, write the results to their destination, then commit. A commit issued before processing finishes can skip records on failure, while a commit issued after processing can replay records. Document the chosen order with the team that owns the consumer.

Does at-least-once or at-most-once delivery apply to HTTP consumers?

Both apply. Committing after processing gives at-least-once delivery: a crash between processing and committing replays records on restart. Committing before processing gives at-most-once delivery: a crash after the commit but before processing loses those records. HTTP makes the gap harder to reason about because fetch, processing and commit happen in separate requests. If a commit reaches the proxy but the response is lost to a network fault, your client cannot tell whether the offset moved. Design downstream writes to be idempotent, keyed on topic, partition and offset or on a business key, so that replays do not create duplicates in the systems you feed.

What happens to offsets when a consumer instance expires?

An instance that stays idle longer than the proxy's configured timeout is usually removed, and any fetched but uncommitted records are delivered again to the next instance that joins the group. Committed offsets stay in Kafka, so progress is tied to commits rather than to the instance itself. Your client must notice the expiry, typically from a not-found response on its next call, and create a new instance before it resumes. Confirm the idle timeout, the cleanup interval and the exact error returned on expiry in the proxy documentation. Those three settings determine how much work can repeat after a client pauses longer than expected.

How does a proxy restart affect consumer progress?

Instance state held only in proxy memory is lost on restart, but committed offsets in Kafka survive, so consumers resume from their last commit. Clients that still hold old instance URLs will get errors and must re-create their instances. Whether instance metadata persists across restarts depends on the proxy and its version, so confirm it before you rely on it. If you run several proxy replicas behind a load balancer, requests for a given instance must reach the replica that holds it, which means session affinity or a shared metadata store. Test a restart during a live consume loop and measure how many records are replayed.

Should HTTP clients delete consumer instances explicitly?

Yes. Delete the instance when the client shuts down cleanly, record the instance name so a restarted client can clean up its predecessor, and re-create the instance when a not-found response appears. Instances that are never deleted consume proxy resources and can keep partition assignments until they time out, which delays rebalances for the rest of the group. Confirm whether the proxy caps the number of instances per group or per user, because a client that creates an instance on every poll will reach that cap quickly. Track instance counts in your monitoring so leaks show up before they affect other teams.

How do HTTP polling and commits affect throughput compared with native clients?

Each poll and each commit is an HTTP round trip, so throughput depends on request latency, batch size and how many requests your client can keep in flight. Native clients fetch large batches over persistent connections and pipeline requests internally, so they usually sustain higher rates for the same hardware. The proxy adds its own serialization and connection handling on top. Plan for the gap by testing with your message sizes and your network path, not by reading generic figures. Set explicit timeouts and retry policies in your client, because a slow proxy response and a lost one look the same from the client side.

What should you confirm in the proxy documentation before going live?

Confirm these items against the version you deploy:

  • The idle timeout after which an instance is removed, and the cleanup interval
  • The error returned for an expired or deleted instance
  • The default auto-commit behavior and whether it can be turned off
  • Whether instances and their offsets survive a proxy restart
  • Any limit on instances per group or per user
  • How authentication tokens expire and how clients refresh them

Record the answers in your runbook and test each one in a non-production environment. The Karapace repository is a useful starting point for its REST behavior, but the values that matter for your deployment are the ones your team measures.

How HTTP identities and payloads map to Kafka

This table compares how an HTTP request element maps to a Kafka concept, so you can see where identity, payload and offset state live. The mapping depends on the chosen proxy, so confirm each row against its documentation before you write client code or ACLs. The main takeaway is that the proxy, not Kafka, decides how HTTP identity and payload fields become Kafka principals, records and consumer state.

HTTP elementKafka conceptWhat to confirm
HTTP credential or tokenKafka principal used for ACL checksWhether the proxy authenticates the caller and which principal it presents to the broker
Proxy service accountShared principal for many HTTP callersWhether per-caller ACLs are possible or all callers share one set of permissions
Request path naming a topicTopic the proxy produces to or consumes fromPath format, topic name encoding and how the proxy handles unknown topics
Consumer group name in the pathKafka consumer group IDWhether the group is created by the proxy and how its membership is tracked
JSON request bodyRecord key and valueSupported JSON content types, how keys are serialized and whether schema-aware formats are required
Binary or base64 payloadRecord value as raw bytesHow the proxy encodes binary data and whether consumers receive it as base64 text
Committed offset or poll positionPartition offset held by the consumer instanceWhether offsets are stored in Kafka, in the proxy or in a session that expires

Securing the HTTP path end to end

An HTTP bridge adds a hop that every security control has to cover, so the proxy is never the only thing standing between a caller and the cluster. The cards below follow a request from the client, through the proxy, to the brokers, and name what each hop must prove and what the broker enforces on its own.

Authenticate callers before the proxy

Put an API gateway or identity provider in front of the bridge so every request carries a verified identity, such as an OIDC token or a client certificate. The proxy should not be the first place credentials are checked. Confirm whether your proxy can pass the caller identity through to Kafka, or whether all callers will share one broker principal, because that choice decides what your ACLs can express.

Encrypt both hops with TLS

Terminate TLS on the client-to-proxy connection and encrypt the proxy-to-broker connection separately, so traffic is never plaintext between the two. Kafka supports SSL/TLS for client, broker and tool traffic, but security is optional, so a listener left unsecured can accept connections that bypass the proxy. Check that every broker listener that the proxy can reach is secured and that the plaintext listeners are closed to that network.

Use SASL with a dedicated principal

Give the proxy its own broker identity, separate from any application, and authenticate it with one of the documented SASL mechanisms: GSSAPI (Kerberos), PLAIN, SCRAM-SHA-256, SCRAM-SHA-512 or OAUTHBEARER. SCRAM and OAUTHBEARER are the usual choices when an identity provider already exists. Ask your security team which mechanism matches your credential rotation process before the proxy is configured.

Deny by default with the StandardAuthorizer

In KRaft clusters the StandardAuthorizer stores ACLs in the metadata log, and resources without an ACL are limited to super users unless allow.everyone.if.no.acl.found is set to true. Leave that setting off, so a new topic created for HTTP clients is unreachable until someone grants access. Verify this behavior in a test cluster, because a permissive default would let the proxy principal read topics that no one meant to expose.

Scope ACLs to topics and groups

Grant the proxy principal only the operations each route needs, such as Read and Describe on named topics and on the consumer groups it creates for HTTP clients. Avoid wildcard prefixes and cluster-level grants unless a route requires them. Review the mapping between gateway routes and ACL entries whenever a topic is added, since the bridge's consumer groups are the part most often left with broad access.

Rate limit at the gateway

Set request limits per caller at the gateway, not only per topic, so one client cannot consume the proxy's connections or broker quota. Kafka quotas limit client traffic on the broker side, but they do not stop a caller from opening many bridge consumer instances. Confirm with your proxy vendor how consumer instances are counted and expired, and test limits with a realistic number of concurrent HTTP clients before go-live.

Where HTTP throughput and latency fall short of native clients

Every produce and fetch through an HTTP bridge costs more than the same operation with a native Kafka client. Each request carries HTTP framing and headers, the proxy parses and serializes JSON on the way in and out, and the traffic takes an extra network hop through the bridge or REST proxy before it reaches a broker. A native client keeps long-lived connections to every broker, batches records internally and pipelines requests. An HTTP client usually cannot do that unless it batches explicitly, so batching, payload size and the number of concurrent requests matter far more on this path. Small records sent one request at a time are the most likely cause of disappointing results.

Before you commit, measure the path you intend to run, not a generic benchmark. Build a test that matches your real record sizes, batch sizes, number of producer and consumer clients, and the consumer instance lifecycle your applications will use. Run it through the exact bridge or proxy version, TLS termination, load balancer and authentication layer you plan to deploy, and record throughput, end-to-end latency at the percentiles your service needs, bridge CPU and memory, and error rates under sustained load. Repeat the test with the bridge restarted or scaled out, because consumer instance state and rebalancing often change the results. Ask the bridge project and your own platform team which limits they have tested, since this page does not supply throughput figures.

Set the acceptance criteria from your workload, then decide whether HTTP is the right boundary. If the measured numbers meet your latency and volume targets with headroom for peaks, an HTTP interface in front of Kafka may be sound. If they do not, the usual options are batching on the client, moving producers to a native client while keeping HTTP only for consumers that need it, or giving the workload its own small service that speaks Kafka natively. Keep the test scripts and results with the design record, because you will need to repeat them after each bridge upgrade.

Common failures when Kafka is reached over HTTP

This table pairs each common failure on an HTTP path to Kafka with its likely cause and the first check to run. Read it top to bottom when a request fails, since several symptoms share a cause at the proxy, the broker authorization layer or the TLS trust chain. The main takeaway is that most failures trace to identity, ACLs or trust configuration rather than to the HTTP layer itself.

FailureLikely causeFirst check
Authorization denied for the proxy principalThe proxy authenticates to brokers as a principal with no ACL for the topic, group or cluster operation it needs. In KRaft, resources without ACLs are restricted to super users unless allow.everyone.if.no.acl.found is set.Confirm the principal the proxy uses to connect, then list ACLs for the topics and consumer group it touches with the broker's ACL tooling.
Consumer instance not found after expiryThe proxy removed an idle consumer instance after its session timeout, so later requests against that instance URI return not found. Clients that pause between polls are the usual trigger.Check the instance's session timeout setting in the proxy configuration and confirm the client polls or refreshes within that window.
Offsets not advancing after commitThe commit request targeted a different consumer group or instance than the one polling, the commit was sent before records were fetched, or auto-commit state differs from what the client expects.Compare the group ID in the poll and commit requests, then read the group's committed offsets with the Kafka consumer group tooling.
TLS trust errors between proxy and brokersThe proxy's truststore does not contain the CA that signed the broker certificate, the certificate hostname does not match the advertised broker address, or the certificate has expired.Run a TLS handshake test from the proxy host to each advertised broker address and inspect the certificate chain and subject alternative names.
Payload content-type mismatchThe request Content-Type or Accept header names an embedded format the proxy does not serve for that endpoint, or the body does not match the declared format (for example, JSON sent as binary).Check the Content-Type and Accept headers against the proxy's documented media types, then validate the request body with a minimal producer call.
Authentication failures at the HTTP layerThe gateway or identity layer in front of the proxy rejects the token, the token audience does not match, or the proxy trusts a different issuer than the one that issued the token.Decode the token claims at the gateway, compare issuer and audience with the gateway configuration, and check clock skew between hosts.
Throughput lower than expected for the workloadEach request carries HTTP and JSON overhead, and records are fetched in small batches per poll. Native clients batch and pipeline more aggressively.Measure batch size per request and compare request rate with a native client on the same topic before changing broker settings.

Questions teams ask before exposing Kafka over HTTP

What drives the cost of exposing Kafka over HTTP?

Cost follows four drivers: the number of HTTP endpoints and topics you expose, the authentication model placed in front of the bridge, the number of concurrent consumers, and the compliance evidence you must produce. A small internal bridge with one shared credential costs far less to build and run than a multi-tenant gateway with per-client identity, rate limits and audit logging. Costs split into one-time work (design, build, testing, documentation) and recurring work (patching the bridge, rotating credentials, upgrading the proxy alongside Kafka, and monitoring). Ask any partner for a quote that separates these two and lists the endpoints, identity provider and consumer count it assumes.

How long does an HTTP access layer for Kafka take to build?

Duration depends on scope rather than on Kafka itself. The main variables are how many topics and operations are exposed, whether identity integration with your existing provider is new work, whether consumer instance handling must survive restarts, and how much load testing your throughput targets require. Fixed-scope engagements agree timelines in writing before work starts, so the timeline should appear in the statement of work with its assumptions listed. Confirm with the bridge or proxy project which versions and features your target Kafka release supports, because version alignment can change the build plan.

Can our own team build and run this in-house?

Yes, if your team already operates Kafka and an HTTP gateway and has the security skills to review the authentication design. The work is mostly configuration and integration, but it becomes harder when you need multi-tenant isolation, per-client authorization mapped to Kafka ACLs, or evidence for an assessment. Kafka's authorization model stores ACLs in the cluster metadata log, and resources without ACLs are restricted to super users unless allow.everyone.if.no.acl.found is set to true, so an HTTP layer that maps identities incorrectly can expose more than intended. Teams without these skills often bring in a partner for design review and testing, then run the result themselves.

What must the client team provide before the work starts?

The client team should provide a list of HTTP clients and their use cases, the topics and operations each client needs, the identity provider and token format in use, and the throughput and latency expectations for each client. They should also supply the Kafka cluster details: version, listener configuration, TLS arrangements and current ACL structure. Application owners must decide who approves new consumer groups and who handles client credentials. Without these inputs, the design cannot fix the endpoint count or the auth model, which are the largest cost drivers.

What must the platform team provide?

The platform team provides the Kafka cluster or access to it, a place to run the bridge or proxy (containers, virtual machines or Kubernetes), network paths between the HTTP tier and the brokers, certificates and secrets storage, and logging and monitoring pipelines. They also own the upgrade plan, because the HTTP component must stay compatible with the Kafka release in use. Kafka supports rolling upgrades from each release in the past year to the latest version, so the platform team should confirm the bridge's compatibility matrix before scheduling any broker upgrade.

Does HTTP access reduce throughput compared with native Kafka clients?

Usually yes. HTTP clients add request and response overhead, serialization costs and connection handling on the bridge, and the bridge becomes a shared bottleneck that native clients bypass. Consumers over HTTP also need instance handling that native clients do not, such as creating, subscribing and deleting consumer instances. Treat HTTP access as suited to low-volume integration, browser or serverless callers and legacy systems, and benchmark your real message sizes and fan-out before committing. Ask the bridge or proxy project for its documented limits and test them in your environment.

What compliance evidence should we expect from an HTTP access layer?

Auditors will look for documented authentication and authorization, encryption in transit from client to bridge and from bridge to brokers, access logs tied to identities, change control for ACLs and credentials, and tested recovery. DeployOpen prepares systems, controls and evidence for compliance assessments, but independent auditors and certification bodies issue the reports and attestations. The evidence volume grows with the number of endpoints and tenants, so scope the controls before the build starts.

Which HTTP option should we choose: the Strimzi HTTP Bridge or Karapace?

Choose based on your platform and whether you also need schema management. Karapace implements the Kafka REST API alongside its Schema Registry under Apache 2.0, so it fits teams that want both in one component. The Strimzi HTTP Bridge fits teams already running Kafka on Kubernetes with Strimzi. Confirm the supported Kafka versions, authentication options and license terms for each option against its repository before deciding, as these change between releases.

How DeployOpen scopes and delivers HTTP access to Kafka

DeployOpen approaches HTTP access to Kafka as a scoped platform component, not a quick proxy install. We agree which HTTP clients need which topics and operations, then build the bridge or REST proxy, the authentication in front of it and the throughput controls inside your own infrastructure. Engagements are fixed-scope, with the deliverables written down before work starts.

How we scope

  • Inventory each HTTP client, its topics, consume or produce direction, and expected request patterns.
  • Decide between the Strimzi HTTP Bridge and the Karapace REST proxy against your Kafka and Kubernetes setup.
  • Write the scope in advance, with the Kafka ACLs, authentication model and throughput limits each client needs.

How we build

  • Deploy the chosen bridge or REST proxy in your environment and connect it to your Kafka cluster over TLS.
  • Place authentication and rate limiting in front of the HTTP endpoints, with service identities mapped to Kafka ACLs.
  • Configure consumer instance lifecycle, timeouts and cleanup so abandoned HTTP consumers do not hold resources.

How we hand over

  • Test produce and consume paths, failure cases such as restarts and expired consumer instances, and access denials.
  • Document endpoints, client onboarding steps, ACL mappings, configuration and known throughput limits.
  • Train your platform and integration teams on operating the bridge, reviewing logs and changing limits safely.

How we support

  • Support is available as a retainer covering upgrades, configuration changes and incident follow-up after handover.
  • Plan version upgrades of the bridge or proxy alongside your Kafka release, checking compatibility before each change.
  • Ask in the quote which support hours, response expectations and testing cadence the retainer includes.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.