A Task Pub/Sub Background processing library
npm install @ordermentum/steveo



A Task Pub/Sub Background processing library (Task Framework for Node.js)
Steveo is a task management library that supports Kafka, SQS and Redis.
Think of it as sidekiq for node.js with support for multiple backends.
This is a Node.js module available through the npm registry.
Before installing, download and install Node.js. Node.js 12 or higher is required.
If this is a brand new project, make sure to create a package.json first with the npm init command.
Installation is done using the npm install command:
``bash`
$ npm install steveo
š¤ engineering@ordermentum.com
Holds the information about the type of task. It has below methods,
- publish - send a message onto a queue
- subscribe - process a message
Responsible for keeping the inventory of tasks & event manager. Whenever a new task is created, an entry will be added in the registry
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
Emitting events based on success/failures
- runner_receive -> Received a message
- runner_complete -> Completed running the associated task
- runner_failure -> Failed running the associated task
- runner_connection_failure -> Error while polling for message (Kafka only)
- task_send
- task_success
- task_failure
- task_added
- task_removed
- producer_success
- producer_failure
`javascript
(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();
})();
`
Publish without registering a task
`javascript`
await steveo.publish('example-task', { name: 'Apple' });
For more details, see example
`sh`
yarn install
`sh`
yarn run test
On a highlevel, it works as below, Steveo has 3 main components
```
+-----------+ +-----------+ +-----------+
| | | | | |
PUBLISH ----->| TASK | | REGISTRY | | RUNNER |-----> RECEIVE
| | | | | |
| | | | | |
+-----------+ +-----------+ +-----------+
_Credits_