lmstfy(pronounce /'lam.si.fai/) is a simple task queue (or job queue) service, providing the following features:
- basic job queue primitives: PUBLISH, CONSUME and DELETE via HTTP API
- support extra lifecycle management of jobs:
- job TTL (time-to-live)
- job delay trigger (at second granularity)
- job auto-retry
- dead letter
- namespace/queue level metrics
- token consume/produce rate limit
lmstfy itself doesn't handle data storage, it delegates the storage to the Redis
or Redis Sentinel
currently (a file based
storage backend is under implementing). So data integrity and durability is in the hand of redis,
we use AOF and replication on our production env to ensure that.
To build the server binary:
$ make # target file would be inside _build dir
To run the server:
redis-server &
./_build/lmstfy-server -c config/demo-conf.toml
To start in developing mode:
./_build/lmstfy-server -c config/demo-conf.toml -bt debug -sv
You can use ./scripts/token-cli
to manage the namespace and token
Detailed internal implementation looks like: