> ## Documentation Index
> Fetch the complete documentation index at: https://sequinstream.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Minimum instance requirements

> Sequin instance sizing guide for development and production workloads.

## Quick reference

| Instance Size | CPU     | Memory | Use Case               | Throughput        |
| ------------- | ------- | ------ | ---------------------- | ----------------- |
| **Minimal**   | 1 vCPU  | 1-2 GB | Development, testing   | Up to 10k ops/sec |
| **Small**     | 2 vCPU  | 4 GB   | Small production       | Up to 15k ops/sec |
| **Medium**    | 4 vCPU  | 8 GB   | Standard production    | Up to 30k ops/sec |
| **Large**     | 8+ vCPU | 16+ GB | High-volume production | 50k+ ops/sec      |

## Minimal instance (1 vCPU, 1-2 GB)

### Configuration

```bash theme={null}
MAX_MEMORY_MB=1500
MEMORY_BUFFER_PERCENT=30
PG_POOL_SIZE=5
REDIS_POOL_SIZE=3
DEFAULT_WORKERS_PER_SINK=10
```

<Warning>
  Not recommended for: >10k ops/sec, large backfills (>10M rows), or multiple high-throughput sinks.
</Warning>

## Small instance (2 vCPU, 4 GB)

### Configuration

```bash theme={null}
MAX_MEMORY_MB=3500
MEMORY_BUFFER_PERCENT=20
PG_POOL_SIZE=10
REDIS_POOL_SIZE=5
DEFAULT_WORKERS_PER_SINK=50
```

## When to scale

Monitor these saturation metrics (scale when >90%):

* `sequin_ingestion_saturation_percent`
* `sequin_processing_saturation_percent`
* `sequin_delivery_saturation_percent`

Resource exhaustion indicators:

* Processes using >100MB memory
* Message queues with >1000 pending
* Growing ETS tables
* `erlang_vm_memory_bytes_total` approaching `MAX_MEMORY_MB`

## Optimization tips

### Batch configuration

```yaml theme={null}
# High-latency destinations (webhooks)
batch_size: 50
batch_timeout: 100ms

# Low-latency destinations (Kafka, Redis)
batch_size: 100
batch_timeout: 10ms
```

### Performance tuning

* Filter specific tables instead of entire schemas
* Use [filters](/reference/filters) to reduce message volume
* Use [transforms](/reference/transforms) to reduce message sizes
* Set `BACKFILL_MAX_PENDING_MESSAGES` lower (e.g., 100k) for small instances

## Cloud instances

| Provider  | Minimal  | Small    | Production |
| --------- | -------- | -------- | ---------- |
| **AWS**   | t3.micro | t3.small | t3.medium+ |
| **GCP**   | e2-micro | e2-small | e2-medium+ |
| **Azure** | B1s      | B2s      | D2s\_v3+   |

## Getting help

* Start minimal and monitor [metrics](/reference/metrics)
* Join [Discord](https://discord.gg/BV8wFXvNtY) or [Slack](https://join.slack.com/t/sequin-community/shared_invite/zt-37begzach-4aUwR5xt_XgivdvctZDemA) for sizing advice
* Consider our [managed offering](/sequin-managed/overview) for automatic scaling
