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

Plan the implementation of background task processing #1744

Open
4 tasks
thekaveman opened this issue Sep 21, 2023 · 0 comments
Open
4 tasks

Plan the implementation of background task processing #1744

thekaveman opened this issue Sep 21, 2023 · 0 comments
Labels
deliverable Work that ends with a non-code deliverable (e.g. Google doc)

Comments

@thekaveman
Copy link
Member

As the application grows in complexity and support for numerous user flows and agencies, we should look to refactor the processing of certain tasks out-of-band from the processing of normal web traffic.

The prime example is the sending of analytics events to Amplitude, which currently executes in the same request-response cycle as the user's flow through the app process. Among problems with this approach:

  • If the event payload is particularly large or Amplitude is particularly slow, the user may be stuck on a page load waiting for the analytics event request to complete
  • If Amplitude is down or otherwise cannot receive the event, the event may be lost forever

A similar example is the sending of errors to Sentry. There may be other use-cases for background task processing in the future, for example related to work coming from #1685

Acceptance Criteria

  • A main tracking issue exists documenting the plan, with linked task-specific issues
  • Any new Azure services proposed or required are clearly documented with some basic cost info
  • Solution considers best practices and norms for Django applications
  • Solution considers developer experience and local reproducibility/testability

Additional context

Recent Failed to send (analytics) event errors recorded in Sentry:

@thekaveman thekaveman added the deliverable Work that ends with a non-code deliverable (e.g. Google doc) label Sep 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
deliverable Work that ends with a non-code deliverable (e.g. Google doc)
Projects
Status: Needs shaping
Development

No branches or pull requests

1 participant