Skip to content
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

Liveliness payload (watchable resource) #1637

Open
skreborn opened this issue Dec 8, 2024 · 0 comments
Open

Liveliness payload (watchable resource) #1637

skreborn opened this issue Dec 8, 2024 · 0 comments
Labels
new feature Something new is needed

Comments

@skreborn
Copy link

skreborn commented Dec 8, 2024

Liveliness tokens can't currently hold data. To work around this at the moment, one needs to declare a Publisher, a PublicationCache, and a LivelinessToken on the same key expression on the sending side, plus two FetchingSubscriber instances (one to receive data and another to monitor liveliness) on the receiving side. This is cumbersome and error prone.

What a liveliness token with a payload would provide is essentially a watchable resource; one that always has a value, which can be changed later, and goes away when the token is dropped. This appears as a use case several times in our projects, and it would be greatly beneficial to include in Zenoh itself to reduce both complexity and resource usage.

@Mallets has previously brought to my attention an issue with this: there needs to be a deterministic system in place to deduplicate liveliness tokens that also doesn't change the excellent performance characteristics of Zenoh. I argue that keeping only the latest payload is a perfectly viable way forward - it should be the developer's responsibility not to publish conflicting data on a single key expression from multiple clients -, but I'm open to alternatives.

@skreborn skreborn added the new feature Something new is needed label Dec 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new feature Something new is needed
Projects
None yet
Development

No branches or pull requests

1 participant