-
Notifications
You must be signed in to change notification settings - Fork 245
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add NATS JetStream driver #115
Add NATS JetStream driver #115
Conversation
150f7bb
to
31f83a1
Compare
Signed-off-by: Matthew DeVenny <[email protected]>
31f83a1
to
320f14e
Compare
…f CI/CD Signed-off-by: Matthew DeVenny <[email protected]>
Thanks for the contribution, this is very interesting! I see there are still some bits commented out, and a few things that are waiting on upstream PRs. Did you want to get those worked out before merging? |
@boxboatmatt thank you for this contribution! Based on my light reading, I have some concerns that you can likely speak to:
|
Yup TLS support is definitely there - I just need to add it... My intention was to revisit the connection but I haven't done that yet :)
NATS JetStream reserves |
The nats.go PR doesn't have to get merged it would just make the client a little cleaner. I should however remove the commented out pieces that are still lingering. I'll address those in addition to other comments |
I'm curious, would it work to essentially just transliterate periods in the key string to some other non-reserved character? I haven't actually thought this through since I'm not sure what meaning the periods have to JetStream. As of etcdv3 forward slashes actually don't have any meaning to etcd; keys are just arbitrary byte arrays. https://etcd.io/docs/v3.5/op-guide/v2-migration/#migrate-client-library
|
Dots separate 'tokens' in a NATS subject such that you can use wildcards ( Here it's the key is just being base58 encoded which is going to be pretty fast encode/decode. |
Signed-off-by: Matthew DeVenny <[email protected]>
Signed-off-by: Matthew DeVenny <[email protected]>
Signed-off-by: Matthew DeVenny <[email protected]>
Signed-off-by: Matthew DeVenny <[email protected]>
Signed-off-by: Matthew DeVenny <[email protected]>
Signed-off-by: Matthew DeVenny <[email protected]>
This PR proposes to add NATS JetStream as a backend option for kine. NATS adoption on the edge is rapidly growing and backing k3s to NATS is a great fit in environments where NATS is already being employed.
JetStream, which enables new functionalities and higher qualities of service on top of the base 'Core NATS' functionalities and qualities of service, is built-in to nats-server and you only need 1 (or 3 or 5 if you want fault-tolerance against 1 or 2 simultaneous NATS server failures) of your NATS server(s) to be JetStream enabled for it to be available to all the client applications.