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

Resend packets stored in Storage Integration #6723

Open
2 of 4 tasks
KellyM001 opened this issue Nov 27, 2023 · 1 comment
Open
2 of 4 tasks

Resend packets stored in Storage Integration #6723

KellyM001 opened this issue Nov 27, 2023 · 1 comment
Assignees

Comments

@KellyM001
Copy link

Summary

Support the ability to (re)send packets stored in Storage Integration out all enabled integrations.

Current Situation

If we lose the ability to process uplink packets in real time because our backend system fails for any reason, we have the ability to retrieve those packets from Storage Integration (which is a great resilience feature btw) via an API. However our backend system is designed to process uplink packets from enabled Application integrations only. And so if we wanted to process packets stored in Storage Integration, we would need to design, implement, and maintain other processes to retrieve those packets from Storage Integration and reinject them into our data pipeline.

In our particular situation the data pipeline consists of our MQTT subscribers subscribing to the TTS MQTT broker, and from the MQTT subscriber the packets are duplicated and sent to multiple other locations. If we have an outage in our backend, then to process any packets lost during an outage we would need to:

  1. Install, configure, and maintain our own MQTT broker.
  2. Modify our existing MQTT subscribers to also subscribe to topics in our MQTT broker.
  3. Design and create a process to retrieve the packets from the Storage Integration via it's API and then inject those packets into our MQTT broker.

Why do we need this? Who uses it, and when?

This is purely to minimise the amount of data processing services we need to support in our backend platform. If there was a way we could request packets stored in Storage Integration to be resent via existing Application integrations, then it would save TTI customers having to build their own processes to retrieve and process packets lost during a backend outage.

Proposed Implementation

I'm not familiar with the TTS architecture regarding Applications and integrations, but if an API end point (or a Console page or CLI command) could be provided that accepted a time range to get data from Storage Integration and resend those packets out existing Application integrations that would be extremely useful. Input parameters would be time range, Organisation, Application, and possibly Device (although if there is a backend outage then I expect uplink packets from all devices in the Application would need to be resent).

Contributing

  • I can help by doing more research.
  • I can help by implementing the feature after the proposal above is approved.
  • I can help by testing the feature before it's released.

Code of Conduct

@KellyM001 KellyM001 added the needs/triage We still need to triage this label Nov 27, 2023
@KrishnaIyer
Copy link
Member

Thanks for the detailed issue. We will discuss this internally and get back to you on this.

@KrishnaIyer KrishnaIyer removed the needs/triage We still need to triage this label Dec 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants