# Solutions

Every feature in Ecotone exists to solve a real problem that PHP developers face as their applications grow. Find the situation that matches yours:

| If you recognize this...                                                                                                                        | See                                                                              |
| ----------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| Business logic is scattered across controllers, services, and listeners — nobody can explain end-to-end what happens when an order is placed    | [Scattered Application Logic](/solutions/scattered-application-logic.md)         |
| Queue jobs fail silently, a retry re-fires handlers that already succeeded, or a duplicate webhook double-charges the customer                  | [Unreliable Async Processing](/solutions/unreliable-async-processing.md)         |
| A multi-step process lives across event listeners, cron jobs, and `is_processed` columns — adding or reordering a step means editing many files | [Complex Business Processes](/solutions/complex-business-processes.md)           |
| Support asks "what exactly happened to this order?" and the trail is in logs, timestamps, and hope                                              | [Audit Trail & State Rebuild](/solutions/audit-trail-and-state-rebuild.md)       |
| Services talk over HTTP with custom retry logic per pair, and one service going down cascades into the others                                   | [Microservice Communication](/solutions/microservice-communication.md)           |
| You're evaluating whether PHP can carry enterprise architecture, with the alternative being a rewrite in Java or .NET                           | [PHP for Enterprise Architecture](/solutions/php-for-enterprise-architecture.md) |

{% hint style="info" %}
Works with: **Laravel**, **Symfony**, and **Standalone PHP**
{% endhint %}


---

# 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.ecotone.tech/solutions.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.
