Need help with graphql-kafka-subscriptions?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

168 Stars 51 Forks MIT License 49 Commits 17 Opened issues


Apollo graphql subscriptions over Kafka protocol

Services available


Need anything else?

Contributors list


It implements the PubSubEngine Interface from the graphql-subscriptions package and also the new AsyncIterator interface. It allows you to connect your subscriptions manager to a single Kafka topic used as Pub/Sub communication channel.


npm install graphql-kafka-subscriptions

Mac OS High Sierra / Mojave

OpenSSL has been upgraded in High Sierra and homebrew does not overwrite default system libraries. That means when building node-rdkafka, because you are using openssl, you need to tell the linker where to find it:

export CPPFLAGS=-I/usr/local/opt/openssl/include
export LDFLAGS=-L/usr/local/opt/openssl/lib

Then you can run

npm install
on your application to get it to build correctly.


Initializing the kafka pubsub client

import { KafkaPubSub } from 'graphql-kafka-subscriptions'

export const pubsub = new KafkaPubSub({ topic: 'name-of-the-topic', host: 'INSERT_KAFKA_IP', port: 'INSERT_KAFKA_PORT', globalConfig: {} // options passed directly to the consumer and producer })

Publishing messages to the subcrition

payload = {
  firstName: "John",
  lastName: "Doe"

pubsub.publish('pubSubChannel', payload);

Subscribing to a channel

const onMessage = (payload) => {

const subscription = await pubsub.subscribe('pubSubChannel', onMessage)


Contributions are welcome. Make sure to check the existing issues (including the closed ones) before requesting a feature, reporting a bug or opening a pull requests.

For sending a PR follow:

  1. Fork it (
  2. Create your feature branch (
    git checkout -b my-new-feature
  3. Commit your changes (
    git commit -am 'Add some feature'
  4. Push to the branch (
    git push origin my-new-feature
  5. Create a new Pull Request

Horia Miron notes:

Thanks to davidyaha for graphql-redis-subscriptions which was the main inspiration point for this project.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.