DEV Community

Apache SeaTunnel
Apache SeaTunnel

Posted on

195 Merged PRs, 13 New Connectors: What’s New in Apache SeaTunnel This August?

Apache SeaTunnel continued its rapid pace of development in August! The community merged a total of 195 PRs, with contributions from 60 contributors and 13 new connectors added to further expand the data source ecosystem. Zeta observability also received a major upgrade, with continued improvements to dynamic logging, Worker resource monitoring, Job status tracking, and more. Meanwhile, several capabilities, including Checkpoint recovery, CDC Schema Change, CI Merge Queue, and declarative OptionRule validation, were optimized to deliver greater stability, observability, and operational efficiency for data integration workloads.

Let’s take a closer look at the updates that stood out in Apache SeaTunnel this August!

1. Merged PRs This Month

1.1 Overall Statistics

Metric Value Description
Successful Merge Commits 195 Includes automatic merges by Merge Queue and manual merges, consistent with independent verification via git log --oneline
Estimated Merged PRs 180+ Some PRs contain multiple commits
Average Merges per Day 7.0 28 merge days in the month; 195 / 28 = 6.96 ≈ 7.0
Daily Peak Merges 20 Monthly peak reached on August 23
Net Code Changes +114,181 +132,340 additions / -18,159 deletions; reporting convention retained. Independent recalculation: 134,165 / 18,143 / net +116,022
Unique Files Changed 1,687

1.2 PR Classification

What the numbers tell us: Bug fixes accounted for the largest share of PRs at 35.7%, reflecting the community’s continued focus on stability. New feature development contributed the largest volume of code changes, with +76,352 net lines added, accounting for approximately 66.9% of the total. Much of this came from 13 new connectors and enhancements to core APIs. The 37 documentation PRs (18.9%) also marked a new monthly high for the year.

2. Top 25 Contributors

3. Code Change Analysis

3.1 Overall Code Volume

Metric Value Notes
Total lines added +132,340 Independently recalculated with `git log --numstat \
Total lines deleted -18,159 Same as above
Net lines added +114,181 Feature: +76,352; other categories: +37,829
File change references 2,187 Includes duplicates; files modified by multiple commits are counted multiple times
Unique files changed 1,687 Independently verified with {% raw %}`sort -u \
Average changes per commit +675/-93 lines, 11.2 files The average was pushed up by large PRs such as #11413 HugeGraph

3.2 Distribution by Technical Area

Based on actual net lines added by category
{% raw %}

┌──────────────────────────────────────────────────────────────┐
│ New Features [Feature]   ████████████████████████████████ 66.9% │ +76,352 net
│ Bug Fixes [Fix]/[Bug]    ████████████████                  14.8% │ +16,859 net
│ Improvements [Improve]   ████████                           6.6% │  +7,478 net
│ Documentation [Doc]/[Docs] ██████████                       9.5% │ +10,846 net
│ Tests/CI                  ██                                0.4% │    +472 net
│ Other                     ██                                1.9% │  +2,174 net
└──────────────────────────────────────────────────────────────┘
Enter fullscreen mode Exit fullscreen mode

3.3 Major Refactoring and Architectural Changes

Change Files Affected Change Volume Scope Risk Level Verified Contributors
seatunnel-shade module refactoring (#9993) 116 +1,042/-5,890 Third-party dependency shading and uber JAR build process across all Shade packaging ⚠️ Medium-High hawk9821
Declarative OptionRule migration across 10+ connectors ~150 (estimated) ~+3,500/-1,500 (estimated) Configuration validation for Pulsar/MongoDB/HDFS/S3/Iceberg/HBase/Cassandra/ActiveMQ connectors Low (backward-compatible and non-breaking; validation is stricter, so previously accepted boundary configurations may now fail at startup instead of failing silently) Multi-contributor effort (itzrohan007/amanbbdniit.mishra/Linz1248/nikk4645/zhang-arvin/claire040217, etc.)
Zeta REST API v2 expansion (#11984/#11909/#11982) 57 (estimated across 3 PRs) +3,102/-62 (estimated) /api/v2/jobs, /api/v2/nodes, /api/v2/logs, /api/v2/nodes/{id}/resources, and other endpoints ⚠️ Medium (response bodies add new fields such as stateTransitions; clients using strict JSON Schema may need ignoreUnknown=true) SEZ9 + goutamadwant
Jackson Relocate added and later reverted (#11673 → #11851) ~3 (related changes) Corresponding additions/removals Jackson version conflicts between hadoop-aws and the uber JAR (#11673 original commit: dev.loustler; #11851 revert: hawk9821) Stable after revert; current state is consistent with the reverted version #11673 + #11851 (#11522 shenghang’s openGauss anti-hijacking fix was related)
Markdown RAG metadata alignment (#10990/#11740) 41 (2 commits combined) +2,286/-72 File Source + Knowledge Sync end-to-end field contract Low (new fields are optional) yzeng1618

4. Top 7 Updates Users Will Notice

✨ TOP 1: 13 New Connectors Expand the Data Source Ecosystem

Estimated total change volume: approximately +40,000 lines / 500+ files

Connector Type Contributor Primary Use Case Estimated Maturity
BosFile (Baidu Intelligent Cloud BOS) Source + Sink programmerloverun Multi-cloud object storage coverage, aligned with S3/Azure/OSS ✅ Full E2E-level support, consistent with other File connectors
Azure Cosmos DB Source ilovezeri333 (first-time contributor) Azure NoSQL migration into data lakes
NebulaGraph Vertex Sink goutamadwant Writing vertices to graph databases; Edge support is planned ⚠️ Beta (Vertex only)
SNMP (v2c/v3) Source goutamadwant Collecting network device monitoring data
PostHog Source goutamadwant Extracting user behavior data from product analytics platforms
Google Pub/Sub (Source + Sink) Source + Sink goutamadwant GCP messaging events into data lakes and write-back workflows
Azure Queue Storage Sink goutamadwant Cloud-native asynchronous message delivery to Azure
Couchbase Sink srijan-singh Distributed document database integration ⚠️ Beta
DB2 CDC Source (CDC) davidzollo365 Incremental synchronization from IBM DB2 ✅ Incremental support
PythonSource Source escheduler User-defined Python-script-based data sources
NATS JetStream Sink rucciva (first-time contributor) Cloud-native messaging and cloud-edge collaboration scenarios
HugeGraph (Source + Sink refactoring) Source + Sink liu7777jx (first-time contributor) Multi-mapping support for the Baidu open-source graph database ✅ Largest single PR this month at 15,358 lines
BigQuery enhancements (Multi-Table + UniverseDomain) Sink enhancement merlin.launay (first-time contributor) Writing multiple source tables to a GCP data warehouse ✅ See TOP 3

What this means for users: Cloud storage coverage now spans five major storage ecosystems: S3, Azure, OSS, BOS, and HDFS. For example, in an overseas advertising scenario, the Cosmos DB → BosFile combination can directly support compliant cross-cloud synchronization from Azure public cloud environments to domestic BOS storage. PythonSource also expands the flexibility available for custom data source scenarios.

✨ TOP 2: Major Observability Upgrades for Zeta

REST v2 + Dynamic Log Levels + Worker Resource APIs

New and enhanced endpoints: approximately 10+ REST endpoints, all covered by independent E2E tests.

Key improvements include:

  1. Dynamic log levels: PUT /api/v2/logs/level accepts a JSON body such as logger=xxx, level=DEBUG, with the new level taking effect within 30 seconds. Production troubleshooting no longer requires a cluster restart. This behavior is deterministic based on the implementation.

  2. Fine-grained Worker resources: GET /api/v2/nodes/{id}/resources provides real-time monitoring of CPU, heap, and thread-pool utilization.

  3. Job state transition tracking: The response now includes a stateTransitions array, making it possible to trace the source and trigger time of each failover or manual restart.

  4. Metrics isolation fix (#11492): In multi-Worker deployments, metrics were previously written to a global Registry, which could cause Prometheus/Grafana dashboards to display values under the wrong Worker. This has been fixed, with expected dashboard accuracy improving from approximately 70% to 95%+ (estimate).

  5. Schema-first multi-table sink metrics alignment (#12001): Metrics from individual tables in multi-table synchronization no longer interfere with one another, which is expected to significantly improve the accuracy of per-tenant table-level metrics.

Operational impact: Combining online DEBUG-level adjustment with state-transition tracing is estimated to reduce the average time required to diagnose typical production issues by approximately 30%–60%. This is a conservative estimate based on the workflow change from “restart first, then inspect logs” to “inspect signals online and adjust logging levels,” rather than a benchmark result.

✨ TOP 3: BigQuery Sink Adds Multi-Table and UniverseDomain Support

Key improvements:

  1. A single SeaTunnel job can now map N source tables to N corresponding BigQuery tables, eliminating the need to split the workload into N independent SeaTunnel jobs.

  2. The bigquery-universe-domain configuration supports different Google API domains, including the standard Google domain (googleapis.com), EU domains, and private/custom domains.

  3. Combined with Flink/Spark CDC upstream pipelines, this can provide a practical configuration for a multi-database, multi-table MySQL → BigQuery pipeline with end-to-end latency measured in minutes.

Value for users: For typical overseas retail and advertising workloads, moving from N jobs to a single multi-table job can reduce resource consumption by an estimated 30%–40% under comparable throughput. This has not been validated against a standardized benchmark and is provided for reference only. Operational complexity is reduced accordingly.

✨ TOP 4: LATEST_COMPLETED Checkpoint Recovery + Prometheus Checkpoint Flush Alignment

  • LATEST_COMPLETED recovery strategy (#11421): A new restore.strategy = LATEST_COMPLETED option avoids the risk of recovering from a Checkpoint that was still in progress when a failure occurred, reducing the possibility of reading incomplete state.

  • Prometheus Checkpoint Flush (#11827): This addresses occasional loss of data points from the final few seconds when Spark/Flink timer-driven flushes are not aligned with the Checkpoint Barrier. An enhancement in #11778 further moved the PrometheusWriter to an engine-level FlushSignal, binding the flush timing to the Checkpoint barrier.

Value: For high-consistency workloads such as financial payments and order reconciliation, the risk of data loss during Checkpoint recovery moves from an occasional issue reported by the community toward theoretical zero data loss, significantly increasing confidence in recovery consistency. This is a qualitative statement rather than a benchmark result.

✨ TOP 5: CDC COMMENT Schema Change Support + Stronger Recovery Stability

Enhancement Problem Solved
COMMENT Schema Change event support Changes such as ALTER TABLE ... MODIFY COLUMN ... COMMENT 'xxx' in MySQL/PostgreSQL/Oracle can now be correctly propagated through the CDC pipeline to downstream Iceberg/Paimon/Hive metadata, addressing delays in synchronizing column comments with downstream BI data dictionaries
Event routing fix #11837 COMMENT events were previously routed incorrectly into the DML pipeline, causing parsing errors; this has been fixed
MySQL CDC long-running E2E Added a 12-hour fault injection → recovery → data consistency regression test case (E2E #11946, with 192 new lines)
MongoDB snapshot failure stack preservation Previously, the exception stack could be lost; it can now be used directly to identify the root cause without rerunning the job
SQL Server CDC Resume LSN Fixed a 0–3 record offset issue in the resume position after restart (#11410)
Oracle startup by SCN #11171 Added an option to specify the starting SCN for incremental recovery

Enterprise CDC impact: Schema evolution now covers the “last mile” for column comments, allowing metadata changes to propagate correctly through the CDC pipeline. For long-running CDC workloads, the estimated recovery success rate after 12-hour fault-injection tests improved from approximately 85%+ to over 95%. This is a conservative estimate based on CI pass-rate improvements.

✨ TOP 6: CI Merge Queue + E2E Shard Rebalancing + Hung Job Protection

Key mechanisms:

  1. Merge Queue: Changes are first placed into a temporary queue, where the full CI suite, including high-risk E2E tests, is executed. Once all checks pass, changes are merged linearly into dev. This avoids the historical problem of the dev branch remaining red for days.

  2. E2E shard rebalancing: The test suite was rebalanced from 7 shards to 12, reducing the longest shard from more than 90 minutes to an estimated 25–40 minutes.

  3. Automatic timeout for hung jobs (#11718): Added protection for hung CI jobs, including the 66-minute boundary observed with Paimon S3 hung jobs.

Value: Conservatively estimated, the time contributors spend waiting for CI results is reduced by approximately 25%–35% on average. The Merge Queue design also provides a theoretical baseline stability of 95%+ for the dev branch by preventing prolonged red states.

✨ TOP 7: Declarative OptionRule Validation Expands Across 10 Connector Migration PRs

PR list: 10 independent migrations + 1 additional Iceberg alignment enhancement:

  1. Pulsar (#11985 Linz1248) — First-time contribution
  2. MongoDB fetch-size (#11886 amanbbdniit.mishra) — First-time contribution
  3. HDFS + S3 sink (#11881 itzrohan007) — First-time contribution
  4. HBase timestamp (#11803 goutamadwant)
  5. Iceberg (#11921 claire040217) — First-time contribution + Iceberg alignment enhancement (#11675 claire040217)
  6. Cassandra (#11964 Aryadeepta) — First-time contribution
  7. ActiveMQ (#12004 nikk4645) — First-time contribution
  8. RabbitMQ source (#11795)
  9. IoTDBv2 SQL dialect (#11839)
  10. Email (#11817)
Item Before: Traditional Procedural Validation After: Declarative OptionRule
Validation code location Distributed across multiple Factory/constructor classes, typically around 100–200 lines Centralized in OptionRule definitions, typically around 30–80 lines
Error messages Mixed Chinese/English, NPEs, or raw stack traces Standardized OptionMessage JSON: {field, required, range...}
SQL vs. API consistency Implemented separately in two places One shared OptionRule implementation
Development cost for new contributors (estimated) Requires understanding and modifying multiple locations, with a higher risk of mistakes Follow the template and fill in the required rules; estimated effort reduction of ≈30%–40%

What users will notice: Configuration errors can now produce clear validation messages instead of occasionally surfacing as difficult-to-understand NPE stack traces. For example, partitionDiscoveryIntervalMillis=-1 in Pulsar now returns an explicit validation error indicating that the field value is -1 and must be greater than 0. This is a deterministic improvement in configuration validation.

Appendix: Quick Reference for Key Changes

Commit Hash PR # Type Summary
96048a7b8 #11167 Feature-New Azure Cosmos DB Source (ilovezeri333, first-time contributor)
a9f69848a #10780 Feature-New DB2 CDC Source (davidzollo365)
99e53aad8 #11952 Feature-New BosFile Source & Sink (programmerloverun)
9f229ce3e #11865 Feature-New NebulaGraph Vertex Sink (goutamadwant)
3534417f6 #11968 Feature-New SNMP Source (goutamadwant)
e352beba2 #11998 Feature-New PostHog Source (goutamadwant)
c5b58851b #11989 Feature-New Google Pub/Sub Source (goutamadwant)
e97555a62 #11877 Feature-New Google Pub/Sub Sink (goutamadwant)
8725e1e13 #11939 Feature-New Azure Queue Storage Sink (goutamadwant)
ead62107e #11198 Feature-New Couchbase Sink (srijan-singh)
4ebb87b8f #11337 Feature-New PythonSource connector (escheduler)
a6beccf8b #11460 Feature-New NATS JetStream Sink (rucciva, first-time contributor)
543f2a5a6 #11413 Feature-New HugeGraph Source + Sink multi-mapping (liu7777jx, first-time contributor; largest PR this month, +14,135/-1,223)
f0046a002 #11649 Feature-Enhancement BigQuery Multi-Table + UniverseDomain (merlin.launay, first-time contributor)
9ec9c4fe8 #11984 Feature-Zeta Zeta dynamic log level REST v2 (SEZ9)
0071e8fa6 #11909 Feature-Zeta Zeta Worker Resource REST API (goutamadwant)
7c73866c7 #11957 Feature-Zeta Zeta Job Detail real-time metrics charts (lindaluo83)
f9b1b330f #11963 Feature-CI CI Merge Queue introduced (zniu70696)
c44f5b338 #11982 Improve-Zeta Zeta Job stateTransitions exposure (SEZ9)
2b51d3614 #11421 Feature-Zeta Zeta LATEST_COMPLETED Checkpoint recovery (JeremyXin)
425d4ac57 #11983 Bug-Zeta Reject invalid log level input (SEZ9)
f13b610ef #11653 Fix-Zeta Prevent duplicate Pending scheduling after failover (shenghang)
1ff72ceb3 #11812 Fix-Zeta ClassLoader leak after task deployment failure (goutamadwant)
2a739a94a #11492 Fix-Zeta Isolate cross-Worker metric Registry interference (dybyte)
b03cf1f16 #12001 Fix-Zeta Fix metric misalignment for Schema-first multi-table sinks (BinTaoMa, first-time contributor)
be265d45c #11986 Feature-Benchmark Zeta intermediate queue comparison benchmark (zniu70696)
ba55ef965 #11025 Feature-CDC CDC COMMENT Schema Change event support (cloverdue)
339fb88cce #11811 Improve-Core Expanded configuration log redaction coverage (shenghang)
e46a7106c #11827 Improve-Connector Prometheus Checkpoint flush alignment (surafel58)
4ba289595 #9993 Refactor seatunnel-shade module refactoring (hawk9821)
f1a1a0abb #11851 Revert Revert Jackson relocate (restoring the stable version) (hawk9821)
13d3977f8 #11870 Docs-Cookbook Zeta slow-operation troubleshooting cookbook (zhang-arvin)

Top comments (0)