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

feat: Autosharding API for (relay) subscriptions #1936

Closed
chair28980 opened this issue Aug 23, 2023 · 7 comments
Closed

feat: Autosharding API for (relay) subscriptions #1936

chair28980 opened this issue Aug 23, 2023 · 7 comments
Assignees
Labels
E:1.2: Autosharding for autoscaling See https://github.com/waku-org/pm/issues/65 for details

Comments

@chair28980
Copy link
Contributor

Currently the only way to manipulate a relay node's pubsub topic subscriptions is through an explicit subscribe call with the pubsub topic as argument or via static configuration when setting up the node. This task tracks work to add a subscribe method to relevant Relay APIs allowing applications to provide desired content topics as (relay) subscribe arguments, while the node translates those to relay subscriptions for specific shards. This task should involve a mechanism where an application is only notified of new messages on subscribed content topics, instead of all messages on the subscribed shards.

Priority: Critical for launch

@SionoiS
Copy link
Contributor

SionoiS commented Aug 24, 2023

Conundrum: If subscribed to a shard and then unsubbing from a content topic on the same shard should the pubsub topic be unsubbed from?

For content topic subscriptions to not override pubsub subscriptions some state must be kept but where?

@SionoiS
Copy link
Contributor

SionoiS commented Aug 31, 2023

Leaving aside my architectural experiment.

When content and pubsub topic are used there's a case where unsubscribing removes other subscriptions.

In GossipSub there's a way to unsubscribe a specific handler on a topic but to use this feature I need to keep track of all handlers.
I not sure where to keep the state needed for this.

This does not belong in waku_node but maybe waku_cache would be the place?

@SionoiS
Copy link
Contributor

SionoiS commented Sep 5, 2023

Weekly Update

  • achieved: Added content topic subscriptions for relay with autosharding via REST & JSONRPC APIs
  • next: PRs feedback

@SionoiS
Copy link
Contributor

SionoiS commented Sep 8, 2023

Weekly Update

  • achieved: Refactored and simplified the core logic
  • next: More PR feedback

@fryorcraken fryorcraken added E:1.2: Autosharding for autoscaling See https://github.com/waku-org/pm/issues/65 for details and removed E:2023-1mil-users labels Sep 11, 2023
@SionoiS
Copy link
Contributor

SionoiS commented Sep 18, 2023

Weekly Update

  • achieved: many PR fixes,
  • blocker: explicit subscriptions in js-waku tests

@SionoiS
Copy link
Contributor

SionoiS commented Sep 22, 2023

Weekly Update

  • achieved: fixed js-waku nwaku interop test
  • blocker: js-waku PR not merged

@SionoiS
Copy link
Contributor

SionoiS commented Sep 26, 2023

Weekly Update

  • achieved: PR merged DONE!

@SionoiS SionoiS closed this as completed Sep 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
E:1.2: Autosharding for autoscaling See https://github.com/waku-org/pm/issues/65 for details
Projects
Archived in project
Development

No branches or pull requests

3 participants