Avoiding Breaking Changes in Your Project: Lessons From the OpenTelemetry Collector
Talkat CNCF Maintainer Summit Europe 2025 · on Monday, 2025-03-31· at 14:30· Level 3 | ICC Capital Suite 10-12·
summary
OpenTelemetry Collector uses Go, a modular layout and automation to minimize breakage: it splits stable APIs into X modules for experimental features, runs a contrib with 200+ components to catch regressions (covering ~70% of real-world usage), and gates runtime changes with feature gates (alpha/beta/stable) — e.g., moving default bind from 0.0.0.0 to localhost behind a gate so users could opt out. Plans include automatic config migration, Rust-style type aliasing for major versions, and CI API-diff checks.
AI-written summary · about
chapters (14)
- 0:00Avoiding breaking changes
- 3:38User types and stability mindset
- 8:07Breaking changes and compatibility
- 10:37Stabilizing APIs with modular design
- 14:13Experimental features in APIs
- 17:25Migration insights from contrib
- 18:08Feature gates for CLI breaking changes
- 21:47Defaults versus user burden
- 23:58Fine-grained stability levels
- 25:02Schema migration automation
- 26:05Rust’s SER trick for compatibility
- 28:38Rust’s crater tool for breaking changes
- 30:04CI breaking change detection
- 31:07Closing remarks and Q&A
related talks
24mCustomize Your Own OpenTelemetry Collector: An Introduction To OCB
27mHow to Avoid Breaking Changes in your Go Modules
30mOpenTelemetry 101
15mOpenTelemetry: The Vision, the Reality and How To Get Started
36mObservability For You and Me with OpenTelemetry
19mOpenTelemetry's Path to Observability's Future
32mAntipatterns in Observability: Lessons Learned and How OpenTelemetry Solves Them
13mWelcome + Opening Remarks
