authgear / authgear/authgear-server

Non-blocking webhooks should not wait for any response from the endpoint

Open
#3,133 0 comments 0 reactions 0 assignees View on GitHub
bug/major cooldown/enhancement cooldown/minor-feature
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.