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

Automated Failure Recovery for Asynchronous Consumers #57

Closed
jshlbrd opened this issue Jan 4, 2023 · 1 comment · Fixed by #153
Closed

Automated Failure Recovery for Asynchronous Consumers #57

jshlbrd opened this issue Jan 4, 2023 · 1 comment · Fixed by #153
Assignees
Labels
enhancement New feature or request

Comments

@jshlbrd
Copy link
Contributor

jshlbrd commented Jan 4, 2023

Is your feature request related to a problem? Please describe.

From the 2023 roadmap, AWS deployments that rely on asynchronous Lambda triggers (e.g., AWS S3) are at risk of data loss due to retry limitations (two retry attempts are made before data is lost). We can fix this by adding support for failure destinations and automating recovery by adding additional retry attempts.

Describe the solution you'd like

Add support for the following:

  • Failure destinations in our Terraform configurations
  • Terraform module(s) that implement automated recovery via a queue (SQS is recommended, but Lambda destinations support SNS, EventBridge, and Lambda as well)

This may require some code changes, but most changes should be made via infrastructure as code.

Describe alternatives you've considered

We recommend that users use Kinesis as intermediary storage for all data pipelines -- Kinesis will retry until data expires in the stream (24 hours by default). An example of this design is here.

Additional context
N/A

@jshlbrd jshlbrd added the enhancement New feature or request label Jan 4, 2023
@jshlbrd
Copy link
Contributor Author

jshlbrd commented Dec 6, 2023

This will be closed by https://github.com/brexhq/substation/tree/jshlbrd/v1/send-lambda. A working example of failure recovery is available here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant