
Product
Introducing Tier 1 Reachability: Precision CVE Triage for Enterprise Teams
Socket’s new Tier 1 Reachability filters out up to 80% of irrelevant CVEs, so security teams can focus on the vulnerabilities that matter.
@imec/digital-twin-kafka-utils
Advanced tools
[](https://dev.azure.com/apt-x/Digital%20Twin/_build/latest?definitionId=128&branchName=master)
Kafka manager is a wrapper around Kafkajs for the Digital Twin project. It's meant to be available publicly from NPM.
First of all you need to be a collaborator of the npm package. Ask david.vermeir@imec.be or ismail.kutlu@imec.be to get access.
yarn build
run npm version <patch,minor,major>
npm publish
on masterimport KafkaManager, { ProducerRecord, KafkaMessage } from ".";
interface RoadData{
name: string,
age: number
}
interface HobbitData{
name: string,
address: string
}
export default class Example {
kafka!: KafkaManager
async init() {
this.kafka = new KafkaManager({ brokers: ['kafka-server:9092']});
const producerConfig = {} // producer config from kafkajs, optional can be left out
const kafkaProducer = await this.kafka.createProducer(producerConfig);
const consumerConfig = {groupId: "hello"};
const kafkaConsumer = await this.kafka.createConsumer(consumerConfig);
const topic = 'traffic-loop';
const record: ProducerRecord = {
topic,
messages: [
{
headers: {'sequenceId': '2'},
key: 'remove road',
value: {name: 'my awesome name', age: 124}
},
{
headers: {'sequenceId': '2'},
key: 'add hobbit',
value: {name: 'hobbit', address: 'Esgaroth'}
}
]
}
setInterval(() => {
console.log('publishing');
this.kafka.publish(kafkaProducer, record);
}, 5000)
function eachBatchFn(messages: KafkaMessage<RoadData|HobbitData>[]) {
messages.forEach(element => {
switch (element.key) {
case "add hobbit":
console.log("Handle the hobbit message");
break;
case "remove road":
console.log("Handle the road message");
break;
default:
console.log("Handle unexpected default");
}
});
console.log("batch messages", messages)
}
function eachMessageFn(message: KafkaMessage<RoadData|HobbitData>) {
console.log("messages", message)
switch (message.key) {
case "add hobbit":
console.log("Handle the hobbit message");
break;
case "remove road":
console.log("Handle the road message");
break;
default:
console.log("Handle unexpected default");
}
}
// Subscribing to a topic can be done using the two methods below. Note that you cannot have `eachMessage` and `eachBatch` in the same subscription! This will cause kafkajs to only run one of the two.
// Use for each message subscription
this.kafka.subscribe<RoadData|HobbitData>(kafkaConsumer, {
subscribeTopic: {topic},
eachMessage: eachMessageFn
});
// Use batch subscription
this.kafka.subscribe<RoadData|HobbitData>(kafkaConsumer, {
subscribeTopic: {topic},
eachBatch: eachBatchFn,
});
}
}
FAQs
[](https://dev.azure.com/apt-x/Digital%20Twin/_build/latest?definitionId=128&branchName=master)
We found that @imec/digital-twin-kafka-utils demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 7 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket’s new Tier 1 Reachability filters out up to 80% of irrelevant CVEs, so security teams can focus on the vulnerabilities that matter.
Research
/Security News
Ongoing npm supply chain attack spreads to DuckDB: multiple packages compromised with the same wallet-drainer malware.
Security News
The MCP Steering Committee has launched the official MCP Registry in preview, a central hub for discovering and publishing MCP servers.