Competing


i am dropping this as a PR now there are still some small things to do. However the following is here:

1) checkpointing
2) server restart
3) RR vs prefer one
4) various settings
5) multiple clients etc
6) config management
7) statistics tcp/http
8) updating on the fly config (causes a subscription drop)
9) cluster node switches
10) parked messages/timed retries (note in flight messages will get retried no matter what on server take over)

1) I want to combine streambuffer into subscription (state handling is weird between them now)
2) I want to use an actual state machine in the handling (might make it clearer whats happening) this is less important
3) a few missing tests (on replaying parked messages and on falling back to paging)
4) HTTP api for getting messages (supported in backend just not http)
5) autoreconnect for client (discussed to leave for after and do reg as well)

Most the other stuff is good though I am mostly putting this here as a point for review and will keep looking at those 5 things.