# Patrones de Diseño

1. **Patrón Strategy**

* **Por qué:** Si bien el microservicio se encarga de guardar datos crudos de los eventos recibidos en el webhook previo al proceso de normalización, es importante guardarlos de manera semi estructurada para separar metadatos relacionados con el origen del evento, de manera que el origen del provedor pueda ser distinguido en los distintos registros de base de datos.
* **Ventaja:** Facilita la extensión del sistema al permitir la adición de nuevas estrategias de separación de datos de metadatos por proveedor.

2. **Circuit Breacker**

* **Por qué:** Para evitar que una parte del proceso se reitere varias veces cuando tiene la probabilidad de que va a fallar, por ejemplo para gestionar casos en los que el pico de trafico supere la capacidad de procesamiento.
* **Ventaja:** Permite la ejecución del sistema sin malgastar recursos mientras el problema no se resuelva y encapsula la lógica de prevenir que un fallo se repita constantemente durante el mantenimiento.


---

# 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://docs-affiliates.inlaze.com/gaming-docs/architecture/sistema-de-sportsbook/estructura/webhook/patrones-de-diseno.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.
