2.0.0 • Published 10 months ago

@level-two/kafka v2.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

LevelTwo - Kafka

A message broker extension for LevelTwo. Refer to the Worker API for function definitions.

Usage

import { createLevelTwoKafka } from "@level-two/kafka";

// Integrates RabbitMQ message broker into a LevelTwo instance
const levelTwo = createLevelTwoKafka({
  topic: "level-two-broadcast",
  clientOptions: {
    brokers: ["localhost:9092"],
  },
});

// Create a worker for getting cacheable customer objects
const worker = levelTwo.createWorker("customer", async (ids, earlyWrite) => {
  const rows = await mysql.query(
    "SELECT id, name FROM customers WHERE id IN (?)",
    [ids]
  );

  rows.forEach((row) => earlyWrite(row.id, row));
});

// Service method for getting a single customer
export async function getCustomer(id: string): Promise<Customer> {
  return await worker.get(id);
}

// Service method for getting a list of customers
export async function getCustomerList(ids: string[]): Promise<Customer[]> {
  return await worker.getMulti(ids);
}

Settings

topic

Topic name for sending/receiving actions

clientOptions

Kafka client options

consumerOptions

Consumer connection options

producerOptions

Producer connection options

remoteCache

LevelTwo remote cache extension

cacheDefaults

LevelTwo worker cache defaults

2.0.0

10 months ago

1.2.0

1 year ago

1.1.0

1 year ago

1.0.0

1 year ago