The message queue builded only with standard libraries (and some others :D)
To run the application server, simple run the following command:
make
To run single consumer, run the following command:
make up-consumer
To change the topic or message, run the following command:
go run cmd/producer/up.go --topic=new_topic --action=subscribe
To publish data in a topic, run the following command:
curl -X POST http://localhost:3000/publish/topic --data-binary 'any data'
- Pub-Sub pattern
- InMemory Storage
- Multi protocols
- RWMutex to ensure the safety concurrency
- Concurrency to speed data communication for each consumer
- Fast message serialization with sonic
- Up to
$62^{62}$ consumers at same time
- Benchmark for performance at high concurrency
- Authentication to publish/commit and listen
- Distributed Storage
- Multiple instance of same application (nodes)