Skip to content

resonatehq/resonate-transport-kafka-ts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@resonatehq/kafka

@resonatehq/kafka is the official Kafka transport binding for Resonate.

Quick Start

Install

npm install @resonatehq/kafka

Run

app.ts

import { type Context, Resonate } from "@resonatehq/sdk";
import { Kafka } from "@resonatehq/kafka";

async function main() {
  const transport = new Kafka({ brokers: ["localhost:9092"] });
  await transport.start();

  const resonate = new Resonate({ transport });
  resonate.register(foo);
  resonate.register(bar);

  const v = await resonate.run("foo.1", foo);
  console.log(v);

  resonate.stop();
}

function* foo(ctx: Context): Generator {
  return yield* ctx.rpc("bar");
}

function bar(ctx: Context) {
  return "hello world";
}

main()

Create the following topics:

  • resonate
  • default

Start the server:

resonate dev --api-kafka-enable --aio-kafka-enable

Start the client:

npx ts-node app.ts

About

The official Kafka transport binding for Resonate.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •