https://github.com/echlebek/lasr
In-process message queue
https://github.com/echlebek/lasr
boltdb go message-queue work-queue
Last synced: about 1 month ago
JSON representation
In-process message queue
- Host: GitHub
- URL: https://github.com/echlebek/lasr
- Owner: echlebek
- License: mit
- Created: 2017-09-19T15:42:26.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-01-30T08:26:10.000Z (over 3 years ago)
- Last Synced: 2025-04-10T08:07:07.657Z (about 1 month ago)
- Topics: boltdb, go, message-queue, work-queue
- Language: Go
- Size: 65.4 KB
- Stars: 5
- Watchers: 2
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://api.travis-ci.org/echlebek/lasr)
[](https://godoc.org/github.com/echlebek/lasr)# lasr
A persistent work queue backed by BoltDB. This queue is useful when the producers and consumers can live in the same process.Project goals
-------------
- Data integrity over performance.
- Simplicity over complexity.
- Ease of use.
- Minimal feature set.Safety
------
lasr is designed to never lose information. When the Send method completes, messages have been safely written to disk. On Receive, messages are not deleted until Ack is called. Users should make sure they always respond to messages with Ack or Nack.Misc
----
Dead-lettering is supported, but disabled by default.Benchmarks
----------On 5th Gen Lenovo X1 Carbon with 512 GB SSD:
`$ hey -m POST -D main.go -h2 -cpus 2 -n 20000 -c 10 http://localhost:8080`
```
Summary:
Total: 1.8671 secs
Slowest: 0.0112 secs
Fastest: 0.0001 secs
Average: 0.0009 secs
Requests/sec: 10711.7919Response time histogram:
0.000 [1] |
0.001 [14044] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
0.002 [5030] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎
0.003 [709] |∎∎
0.005 [139] |
0.006 [36] |
0.007 [19] |
0.008 [8] |
0.009 [7] |
0.010 [3] |
0.011 [4] |Latency distribution:
10% in 0.0001 secs
25% in 0.0003 secs
50% in 0.0008 secs
75% in 0.0013 secs
90% in 0.0018 secs
95% in 0.0022 secs
99% in 0.0034 secsDetails (average, fastest, slowest):
DNS+dialup: 0.0000 secs, 0.0000 secs, 0.0056 secs
DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0020 secs
req write: 0.0000 secs, 0.0000 secs, 0.0042 secs
resp wait: 0.0009 secs, 0.0000 secs, 0.0098 secs
resp read: 0.0000 secs, 0.0000 secs, 0.0038 secsStatus code distribution:
[200] 20000 responses
```