#queue #web-queue #proxy #broadcast #web #service-discovery

app sonya-proxy

Proxy for sharding queues of your web queue cluster

5 releases

0.4.2 Dec 18, 2021
0.4.0 Oct 27, 2021
0.3.2 Oct 16, 2021
0.3.1 Oct 16, 2021
0.3.0 Sep 10, 2021

#317 in WebSocket

MIT license

77KB
2K SLoC

Welcome to SonyaWQ 👋

Version License: MIT

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.

Queue only schema

Service Mesh

With proxies will automatically distribute queues messages between some queues. The best solution for increasing your scalability.

Queue only schema

Author

👤 Mikhail Panfilov

🤝 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

~30–47MB
~1M SLoC