chore: merge main into release#30
Merged
Merged
Conversation
BREAKING CHANGE: Transport trait split into TransportBase (close, is_healthy, name), TransportSender (send), and TransportReceiver (recv, commit, Token). Blanket Transport impl for types with both. New transport backends: - File: NDJSON with position tracking and commit persistence - Pipe: stdin/stdout for Unix pipeline composition - HTTP: POST to endpoint (send) + embedded axum server (receive) - Redis/Valkey Streams: XADD/XREADGROUP/XACK with consumer groups Transport factory: - AnySender: enum dispatch for runtime transport selection - AnySender::from_config(): create sender from config cascade - RoutedSender: per-key dispatch for data originators (receiver/fetcher) All transports auto-emit dfe_transport_* Prometheus metrics. 648 tests pass.
# [1.17.0-dev.15](v1.17.0-dev.14...v1.17.0-dev.15) (2026-03-26) * feat!: split Transport trait and add 4 new transports + factory ([36c383d](36c383d)) ### BREAKING CHANGES * Transport trait split into TransportBase (close, is_healthy, name), TransportSender (send), and TransportReceiver (recv, commit, Token). Blanket Transport impl for types with both. New transport backends: - File: NDJSON with position tracking and commit persistence - Pipe: stdin/stdout for Unix pipeline composition - HTTP: POST to endpoint (send) + embedded axum server (receive) - Redis/Valkey Streams: XADD/XREADGROUP/XACK with consumer groups Transport factory: - AnySender: enum dispatch for runtime transport selection - AnySender::from_config(): create sender from config cascade - RoutedSender: per-key dispatch for data originators (receiver/fetcher) All transports auto-emit dfe_transport_* Prometheus metrics. 648 tests pass.
HealthRegistry: global singleton with HealthStatus (Healthy/Degraded/ Unhealthy). Modules register health check closures at construction. is_healthy(), is_ready(), to_json() for aggregated status. Shutdown: global CancellationToken via OnceLock. install_signal_handler() listens for SIGTERM/SIGINT. Modules listen on token.cancelled(). Wiring: - KafkaTransport, GrpcTransport: register with health, Arc<AtomicBool> - CircuitBreaker: register with health, maps Open->Unhealthy - HttpServer: register with health, use global shutdown token - TieredSink drainer: listen on global shutdown token - ConfigReloader: listen on global shutdown token Logging + config cascade added to all new transports (file, pipe, HTTP, Redis). 663 tests pass.
# [1.17.0-dev.16](v1.17.0-dev.15...v1.17.0-dev.16) (2026-03-26) ### Bug Fixes * add health registry, shutdown manager, and wire all modules ([21efaa2](21efaa2))
OTel trace context (W3C traceparent) auto-propagated through gRPC (PushRequest metadata), Kafka (message headers), and HTTP (request headers). All gated behind #[cfg(feature = "otel")] — zero overhead when disabled. Shared propagation helpers in transport/propagation.rs. /readyz endpoint now aggregates from HealthRegistry when health feature is enabled. /health/detailed returns per-component JSON status. MetricsManager readiness also checks HealthRegistry. Fix test ordering issue with HealthRegistry global state. Update crate description. 671 tests pass.
# Conflicts: # CHANGELOG.md # Cargo.toml # VERSION
|
🎉 This PR is included in version 1.20.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automated Release Merge
Merging
mainintorelease(7 commits).Commits