4 releases
0.4.2 | Dec 18, 2021 |
---|---|
0.4.0 | Oct 23, 2021 |
0.3.2 | Oct 16, 2021 |
0.3.0 | Sep 10, 2021 |
#312 in WebSocket
53KB
1.5K
SLoC
Welcome to SonyaWQ 👋
SonyaWQ is a fast, distributed queue that provides a flexible realization of the
Web Queue
in Web Queue Worker architecture. SonyaWQ realize Service Mesh architecture with service discovery support.
The Web-Queue-Worker architecture defines a web portion that handles HTTP requests and a worker portion that handles time or processing-intensive operations. A queue is used for asynchronous communication between the web and the worker.
Top use cases
Heavy requests
Move your long time and heavy tasks to backend workers. When they will be processed notify clients with SonyaWQ.
Broadcast updates between clients
Notify clients about any changes on every device.
Interactive
Add interactive for your clients.
Chat rooms, text editing, playing chess, etc.
Features
Flexible configuring
SonyaWQ supports simple and flexible configuring.
You don't need to use any configurations to up the simple service
Configure documentation
Simple API
SonyaWQ has a simple API that can be used from websites frontend, backends, and other services.
API documentation
Distribution
SonyaWQ supports service mesh
architecture.
Sharding documentation
Request tokens protection
SonyaWQ provides the JWT
and Service Token
requests protection support.
Tokens documentation
Save state changes
SonyaWQ uses the sequences
mechanism that saves from losing data when the client has some troubles.
Sequences
Architectures visualization
One queue
All clients and backends will use only one queue. Good solutions for small projects.
Service Mesh
With proxies will automatically distribute queues messages between some queues. The best solution for increasing your scalability.
Author
👤 Mikhail Panfilov
- Github: @Mnwa
- LinkedIn: @https://www.linkedin.com/in/mikhail-panfilov-020615133/
🤝 Contributing
Contributions, issues, and feature requests are welcome!
Feel free to check issues page.
Show your support
Give a ⭐️ if this project helped you!
Dependencies
~29–44MB
~878K SLoC