# Getting Started

The overall design of this framework is open and extensible (implementing the traditional [Open-Closed Principle](https://en.wikipedia.org/wiki/Open%E2%80%93closed_principle)), which means base contracts can be extended, composed, or replaced.

It is possible to use its components as they are provided or use the base contracts to extend single functions, while still using the rest of the provisioning.

### Sending and Receiving

The framework provides three major capabilities to the applications using its libraries

<table><thead><tr><th width="209.5">Capability</th><th>Description</th></tr></thead><tbody><tr><td><a href="/pages/2nIgY6YgzzcE4wn96ajg"><strong>Send Webhooks</strong></a></td><td>Send a Webhook message to a receiver, enforcing formatting, integrity and retry rules</td></tr><tr><td><a href="/pages/MmhTbW1HgsRF7mTAJHFD"><strong>Notify Webhooks</strong></a></td><td>Communicate the occurrence of an event in a system to an external application that is listening for those events </td></tr><tr><td><a href="/pages/xR3A20HsQxXFkgxNnJ6T"><strong>Receive Webhooks</strong></a></td><td>Accepts and processes a notification from an external system, to trigger any related process</td></tr></tbody></table>

The two sending capabilities (*send* and *notify*) are disconnected from the receiving capability, since they represent two different parts of the communication channel (the *Sender* and the *Receiver*): as such the architecture of the framework is designed so that they don't depend on each other's.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://webhooks.deveel.org/getting-started.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
