authgear / authgear/authgear-server
Non-blocking webhooks should not wait for any response from the endpoint
- Dominant language
- Go
- Stars
- 2k
- Forks
- 125
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 32
Description
## Problem
By nature non-blocking webhooks are NON-blocking. That is, the response from the webhook endpoint should not affect the process.
In our current implementation, the process will wait for a response before proceeding, although the response content does not matter. If the non-blocking webhook endpoint timeout, the process will hang for a very long time.
## Step to reproduce
- Put in a endpoint in non-blocking event that with 30s delay in response
- Execute a user profile mutation in GraphQL
- Sees the GraphQL request takes more than 30s to finish
- Remove the non-blocking event endpoint. Retest and see the request completed in much shorter time.
Contributor guide
Research direction
Start by reproducing the delayed endpoint described in the issue during a user profile mutation, then trace the non-blocking webhook dispatch path. Done means the GraphQL request proceeds without waiting for the endpoint response, including when the endpoint times out; add or update coverage for this behavior if the relevant test area is identified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, graphql
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100