# Recovering, Tracing and Monitoring

To keep the system reliable and resilient it's important to handle errors with grace.\
Ecotone provides solutions to handle failures within the system that helps in:

* Self-healing the application ([Instant and Delayed Message Handling Retries](https://docs.ecotone.tech/modelling/recovering-tracing-and-monitoring/resiliency/retries), [Locking](https://docs.ecotone.tech/modelling/recovering-tracing-and-monitoring/resiliency/concurrency-handling), [Isolation of failures](https://docs.ecotone.tech/modelling/recovering-tracing-and-monitoring/message-handling-isolation))
* Ensuring Data Consistency ([Resilient Message Sending](https://docs.ecotone.tech/modelling/recovering-tracing-and-monitoring/resiliency/resilient-sending), [Outbox pattern](https://docs.ecotone.tech/modelling/recovering-tracing-and-monitoring/resiliency/outbox-pattern), [Message Deduplication](https://docs.ecotone.tech/modelling/recovering-tracing-and-monitoring/resiliency/idempotent-consumer-deduplication))
* Recovering ([Dead Letter](https://docs.ecotone.tech/modelling/recovering-tracing-and-monitoring/resiliency/error-channel-and-dead-letter), [Tracing](https://docs.ecotone.tech/modules/opentelemetry-tracing-and-metrics), [Monitoring](https://docs.ecotone.tech/modelling/recovering-tracing-and-monitoring/ecotone-pulse-service-dashboard))

{% hint style="success" %}
To find out more about different use-cases, read related section about [Handling Failures in Workflows](https://docs.ecotone.tech/modelling/business-workflows/handling-failures).
{% endhint %}

## Materials

### Demo implementation

* [Error Handling with delayed retries and storing in DLQ](https://github.com/ecotoneframework/quickstart-examples/tree/main/ErrorHandling)

### Links

* [Async Failure Recovery: Queue vs Streaming Channel Strategies](https://blog.ecotone.tech/async-failure-recovery-queue-vs-streaming-channel-strategies/) {Article]
* [Read in depth material about resiliency in Messaging Systems using Ecotone](https://blog.ecotone.tech/building-reactive-message-driven-systems-in-php/) \[Article]
* [Resilient Messaging with Laravel](https://blog.ecotone.tech/ddd-and-messaging-with-laravel-and-ecotone/) \[Article]
* [Making your application stable with Outbox Pattern](https://blog.ecotone.tech/implementing-outbox-pattern-in-php-symfony-laravel-ecotone/) \[Article]
* [Handling asynchronous errors](https://blog.ecotone.tech/working-with-asynchronous-failures-in-php/) \[Article]
