Steveo - Task Framework for Node.js
Steveo is a task management library that supports Kafka, SQS and Redis.
On a highlevel, it works as below, Steveo has 3 main components
+-----------+ +-----------+ +-----------+
| | | | | |
PUBLISH ----->| TASK | | REGISTRY | | RUNNER |-----> RECEIVE
| | | | | |
| | | | | |
+-----------+ +-----------+ +-----------+
Task
Holds the information about the type of task. It has below methods,
- publish
- subscribe function
Registry
Responsible for keeping the inventory of tasks & event manager. Whenever a new task is created, an entry will be added in the registry
Runner
Responsible for consuming messages,
process
method initialize group consumers and start to consume the messages. It will then call the subscribe callback set on the task
Example
(async () => {
const steveo = Steveo({
kafkaConnection: process.env.KAFKA_CONNECTION,
clientId: '1234-123',
});
const example = steveo.task('example-task', async ({ name }) => {
console.log(`hello ${name}`);
});
await example.publish({ name: 'tommo' });
await example.publish({ name: 'bazza' });
await steveo.runner().process();
})();
For more details, see example
Credits