httpQ is a simple broker that provides a number of HTTP "channels"
When a producer connects: it should connect by publishing a message to a topic if no consumers are waiting, it should block until a consumer connects on that channel
When a consumer connects: it should return the message published to a topic if no producers are waiting, it should block until a producer connects on that channel
No message persistence is required. Ordering is considered:
Compile the following stats:
- Failures to send (ie. Timeout)
- Failures to receive (ie. Timeout)
- Bytes received
- Bytes published
Producer example query:
curl -k https://localhost:23411/NhPvrxcJ5WfsYJ -d "hello 1"
curl -k https://localhost:23411/NhPvrxcJ5WfsYJ -d "hello 2"
Consumer example query:
curl -k https://localhost:23411/NhPvrxcJ5WfsYJ
Output: hello 1
curl -k https://localhost:23411/NhPvrxcJ5WfsYJ
Output: hello 2
Stats example query:
curk -k https://localhost:23411/stats
- Create a new project with git
- Setup go module
- Create binary with HTTPS server and self signed certificates
- Complete tests to verify functionality
Time of commits is not considered, we acknowledge that you might not work on it all at once. Time to complete is not considered.