docs/en/engines/overview.md
SeaTunnel supports multiple execution engines, allowing you to choose the best one for your use case. This document provides a comprehensive comparison to help you make the right choice.
| Engine | Description | Recommended For |
|---|---|---|
| SeaTunnel Engine (Zeta) | Native engine built specifically for data integration | New projects, data synchronization |
| Apache Flink | Distributed stream processing engine | Existing Flink infrastructure |
| Apache Spark | Distributed batch/stream processing engine | Existing Spark infrastructure |
| Feature | SeaTunnel Engine | Flink | Spark |
|---|---|---|---|
| Batch Processing | ✅ | ✅ | ✅ |
| Stream Processing | ✅ | ✅ | ✅ |
| CDC Support | ✅ | ✅ | ❌ |
| Exactly-Once | ✅ | ✅ | ✅ |
| Multi-Table Sync | ✅ | ✅ | ✅ |
| Schema Evolution | ✅ | ✅ | ❌ |
| REST API | ✅ | ✅ | ❌ |
| Web UI | ✅ | ✅ | ✅ |
| Standalone Mode | ✅ | ✅ | ✅ |
| Cluster Mode | ✅ | ✅ | ✅ |
| Metric | SeaTunnel Engine | Flink | Spark |
|---|---|---|---|
| Throughput | ⭐⭐⭐ High | ⭐⭐ Medium | ⭐⭐ Medium |
| Latency | ⭐⭐⭐ Low | ⭐⭐⭐ Low | ⭐⭐ Medium |
| Resource Usage | ⭐⭐⭐ Low | ⭐⭐ Medium | ⭐ High |
| Startup Time | ⭐⭐⭐ Fast | ⭐⭐ Medium | ⭐ Slow |
| Aspect | SeaTunnel Engine | Flink | Spark |
|---|---|---|---|
| Installation | ⭐⭐⭐ Simple | ⭐⭐ Medium | ⭐⭐ Medium |
| Configuration | ⭐⭐⭐ Simple | ⭐⭐ Medium | ⭐⭐ Medium |
| Dependencies | ⭐⭐⭐ None | ⭐⭐ Zookeeper (optional) | ⭐ YARN/Mesos |
| Learning Curve | ⭐⭐⭐ Easy | ⭐⭐ Medium | ⭐⭐ Medium |
Best for:
Advantages:
Example use cases:
Best for:
Advantages:
Example use cases:
Best for:
Advantages:
Example use cases:
Start
│
▼
Do you have existing Flink/Spark infrastructure?
│
├─ Yes ──► Do you want to reuse it?
│ │
│ ├─ Yes (Flink) ──► Use Flink Engine
│ │
│ ├─ Yes (Spark) ──► Use Spark Engine
│ │
│ └─ No ──► Use SeaTunnel Engine
│
└─ No ──► Use SeaTunnel Engine (Recommended)
env {
parallelism = 2
job.mode = "STREAMING"
checkpoint.interval = 10000
}
env {
parallelism = 2
job.mode = "STREAMING"
checkpoint.interval = 10000
flink.execution.checkpointing.mode = "EXACTLY_ONCE"
flink.execution.checkpointing.timeout = 600000
}
env {
parallelism = 2
job.mode = "BATCH"
spark.app.name = "SeaTunnel-Job"
spark.executor.memory = "2g"
spark.executor.instances = "2"
}
All SeaTunnel V2 connectors are compatible with all three engines. However, some features may have different behaviors:
| Connector Feature | SeaTunnel Engine | Flink | Spark |
|---|---|---|---|
| CDC Connectors | ✅ Full support | ✅ Full support | ❌ Not supported |
| Exactly-once sink | ✅ Full support | ✅ Full support | ✅ Partial support |
| Multi-table read | ✅ Full support | ✅ Full support | ✅ Full support |
flink.)parallelism, checkpoint.interval)spark.)parallelism, job.mode)| Scenario | Recommended Engine |
|---|---|
| New project without big data infrastructure | SeaTunnel Engine |
| CDC and real-time synchronization | SeaTunnel Engine |
| Existing Flink infrastructure | Flink |
| Existing Spark infrastructure | Spark |
| Low resource environment | SeaTunnel Engine |
| Complex stream processing | Flink |
| Large-scale batch ETL | Spark |