Why webhooks push notifications in Rest API - Performance Analysis
When webhooks push notifications, they send data automatically to another system. We want to understand how the time it takes grows as more notifications are sent.
How does the work increase when the number of notifications grows?
Analyze the time complexity of the following webhook notification process.
POST /webhook/notify
for each subscriber in subscribers_list:
send HTTP POST notification
wait for response
return success
This code sends a notification to each subscriber one by one and waits for their response.
Look for repeated actions that take time.
- Primary operation: Sending HTTP POST notification to each subscriber.
- How many times: Once for every subscriber in the list.
As the number of subscribers grows, the number of notifications sent grows the same way.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 notifications sent |
| 100 | 100 notifications sent |
| 1000 | 1000 notifications sent |
Pattern observation: The work grows directly with the number of subscribers.
Time Complexity: O(n)
This means the time to send notifications grows in a straight line with the number of subscribers.
[X] Wrong: "Sending notifications happens instantly no matter how many subscribers there are."
[OK] Correct: Each notification takes time, so more subscribers mean more total time.
Understanding how notification sending scales helps you explain real-world API behavior clearly and confidently.
"What if notifications were sent in parallel instead of one by one? How would the time complexity change?"
Practice
Solution
Step 1: Understand the purpose of webhooks
Webhooks are designed to send data immediately when an event happens, instead of waiting for your app to ask.Step 2: Compare push vs pull methods
Push (webhooks) saves time and resources by sending updates instantly, unlike pull which requires repeated checking.Final Answer:
To send updates instantly and save time and resources -> Option BQuick Check:
Push notifications = instant updates [OK]
- Thinking webhooks slow down the app
- Confusing push with pull methods
- Believing webhooks avoid sending data
Solution
Step 1: Identify the HTTP method for sending data
Webhooks send event data to your app, which requires a method that can carry data in the request body.Step 2: Match HTTP methods to their purpose
POST is used to send data to a server, unlike GET which only requests data without sending a body.Final Answer:
POST -> Option AQuick Check:
Webhooks use POST to send data [OK]
- Choosing GET which only retrieves data
- Confusing PUT or DELETE with sending notifications
- Not knowing HTTP methods' purposes
Solution
Step 1: Analyze the webhook behavior
The webhook sends a POST request immediately when the event happens, so your app gets notified right away.Step 2: Understand the benefit of instant notifications
This means your app does not need to ask repeatedly and can update its data in real time.Final Answer:
Your app gets real-time updates without delay -> Option AQuick Check:
Instant POST = real-time updates [OK]
- Thinking app must poll for updates
- Assuming updates are delayed
- Believing webhook sends outdated info
Solution
Step 1: Check webhook delivery requirements
Webhooks send POST requests to a URL your app provides. If the URL is wrong or unreachable, notifications won't arrive.Step 2: Eliminate incorrect causes
Your app does not send POST requests to the webhook; the webhook sends them. Webhooks use POST, not GET. Polling is unrelated to webhook delivery.Final Answer:
The webhook URL is incorrect or unreachable -> Option DQuick Check:
Wrong URL = no notifications [OK]
- Thinking app sends POST to webhook
- Confusing HTTP methods used
- Assuming polling affects webhook delivery
Solution
Step 1: Identify the goal
You want immediate updates when payment completes, so your app must get notified instantly.Step 2: Choose the webhook approach
Setting up a webhook that sends a POST notification on payment completion pushes updates instantly, avoiding delays and repeated checks.Final Answer:
Set up a webhook that sends a POST notification to your app when payment completes -> Option CQuick Check:
Webhook POST = instant payment update [OK]
- Relying on polling instead of webhooks
- Using GET requests incorrectly
- Ignoring real-time update needs
Ready to prove it?
Pass the test and this pattern moves unknown
