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

Add more granular control over real-time updates #2387

Open
acelaya opened this issue Mar 9, 2025 · 0 comments
Open

Add more granular control over real-time updates #2387

acelaya opened this issue Mar 9, 2025 · 0 comments
Milestone

Comments

@acelaya
Copy link
Member

acelaya commented Mar 9, 2025

Shlink has supported real-time updates for some time, with support for RabbitMQ, Mercure and Redis pub/sub (ATM of writing this).

Shlink currently supports 4 real-time updates operations:

  1. https://shlink.io/new-visit: Get notified every time there's a new visit on any short URL.
  2. https://shlink.io/new-visit/{shortCode}: Get notified every time there's a new visit on a particular short URL.
  3. https://shlink.io/new-orphan-visit: Get notified every time an orphan visit is created.
  4. https://shlink.io/new-short-url: Get notified every time a short URL is created.

1, 3 and 4 are non-controversial "static" channels, but 2 is a dynamic channel pattern which can cause more resources to be needed, specially in contexts with a lot of short URLs.

For example, as reported in #2382, that particular operation can cause too many queues to be created in a RabbitMQ server, which can become resource greedy, specially if the messages are not consumed.

Because of that, it would be useful that users can configure which real-time operations should be enabled, rather than being an all-or-nothing option.

@acelaya acelaya added this to the 4.5.0 milestone Mar 9, 2025
@acelaya acelaya added this to Shlink Mar 9, 2025
@acelaya acelaya changed the title Add more granular control over real-time update Add more granular control over real-time updates Mar 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests

1 participant