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

Retries in notification-publisher can cause duplicate notifications to be sent #771

Closed
nscuro opened this issue Aug 28, 2023 · 1 comment

Comments

@nscuro
Copy link
Member

nscuro commented Aug 28, 2023

notification-publisher consumes Notifications from dtrack.notification.* topics. Notification is the unit of work for it.

It then checks which NotificationRules are applicable to the Notification at hand. Multiple NotificationRules can apply to one Notification.

Each NotificationRule defines a NotificationPublisher that shall be used to deliver the Notification.

This means that, to process one Notification, notification-publisher has to potentially perform N calls to external services, each of which may fail (due to transient, or non-transient errors).

Since switching from Kafka Streams to Confluent's Parallel Consumer (#586), processing failures can be retried.


Assuming a Notification is covered by two NotificationRules, both referring to WebhookPublisher.

When processing the Notification, publishing for the first NotificationRule succeeds, but the second one experiences a timeout. If we were to retry the processing of the Notification, the first NotificationRule will receive duplicates until publishing succeeds for the second rule.

@nscuro
Copy link
Member Author

nscuro commented Jan 11, 2025

Not pursuing this anymore as a consequence of #1619. The way notifications are being published will become more granular, completely voiding this issue.

@nscuro nscuro closed this as not planned Won't fix, can't repro, duplicate, stale Jan 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant