# Persistent Queue

{% hint style="danger" %}
**Badger Persistent Queue – Not Recommended**

Badger is designed to use available system memory for filesystem caching. While this behavior is expected and does not negatively impact system performance, it can make agents appear to consume more memory than anticipated and harder to monitor. To reduce potential confusion around reported memory usage, [consider switching](https://docs.bindplane.com/configuration/bindplane-otel-collector/persistent-queue/switching-queues) to Pebble or Bolt.
{% endhint %}

{% hint style="warning" %}
Bolt is currently the default persistent queue storage backend, but this may change in the future.
{% endhint %}

Bindplane supports three persistent queue backends that write to local disk when destinations cannot keep up, each comes with its own benefits and drawbacks.

## Which Storage Backend Should You Use?

| Deployment Type                        | Recommended                                                                                                                                                         | Why                                                                                         |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| **Single collector**                   | [Pebble](/configuration/bindplane-otel-collector/persistent-queue/pebble.md)                                                                                        | Excellent performance with limited resource impact                                          |
| **2+ collector gateway**               | [Pebble](/configuration/bindplane-otel-collector/persistent-queue/pebble.md)                                                                                        | Good performance with anticipated resource usage                                            |
| **Edge/agent network**                 | [Pebble](/configuration/bindplane-otel-collector/persistent-queue/pebble.md)                                                                                        | Low resource usage across many distributed deployments                                      |
| **Resource-constrained**               | [Pebble](/configuration/bindplane-otel-collector/persistent-queue/pebble.md)                                                                                        | Minimal memory and CPU overhead                                                             |
| **Existing File Storage (Bolt) Queue** | [Stay](/configuration/bindplane-otel-collector/persistent-queue/bolt.md) or upgrade to [Pebble](/configuration/bindplane-otel-collector/persistent-queue/pebble.md) | File Storage still works; upgrade if experiencing issues or would like a performance boost. |

### Pebble (Recommended)

Pebble is the recommended storage backend for most Bindplane deployments. It provides excellent performance with minimal configuration.

**Use Pebble for:**

* Balanced disk I/O
* Medium to high throughput workloads
* Smaller disk footprints for your telemetry

See [Pebble](/configuration/bindplane-otel-collector/persistent-queue/pebble.md) for configuration options.

### Bolt

Bolt is the original persistent queue backend and remains fully supported for the short term. However, Pebble offers in most cases better performance for persistent queueing.

**Use Bolt for:**

* Existing deployments already using it successfully

See [Bolt](/configuration/bindplane-otel-collector/persistent-queue/bolt.md) for more information and upgrade guidance.

## Quick Decision Guide

**Are you having performance issues?**

* Lock contention errors in logs: Upgrade from Bolt to Pebble
* Queue not draining: Upgrade from Bolt to Pebble

## Next Steps

1. Review your current deployment
2. Select the appropriate persistent queue for your desired outcome
3. Ensure to follow the [Configuration](/configuration/bindplane-otel-collector/persistent-queue/switching-queues.md) guide in order to not lose data during the transition
4. Monitor performance and resource usage

For detailed configuration information:

* [Pebble](/configuration/bindplane-otel-collector/persistent-queue/pebble.md)
* [Bolt](/configuration/bindplane-otel-collector/persistent-queue/bolt.md)


---

# 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.bindplane.com/configuration/bindplane-otel-collector/persistent-queue.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.
