Skip to content

Release 1.1.0: async/thread propagation, MDC, cross-service tracing o… - #1

Merged
Fayupable merged 1 commit into
mainfrom
dev/v1.1.0
Aug 3, 2026
Merged

Release 1.1.0: async/thread propagation, MDC, cross-service tracing o…#1
Fayupable merged 1 commit into
mainfrom
dev/v1.1.0

Conversation

@Fayupable

Copy link
Copy Markdown
Owner

…ver Kafka/RabbitMQ/HTTP

  • Add FlowContextPropagatingExecutor / FlowContextTaskDecorator for call-chain propagation across thread hand-offs, including virtual threads and @async
  • Detect CompletableFuture return types and record duration/outcome on completion instead of submission
  • Add MDC structured logging (LoggedMdcKeys, MdcPropagation, MdcContextPropagation)
  • Add RequestAttributes/SecurityContext propagating executors and task decorators for caller-identity continuity across thread hand-offs
  • Add cross-service trace propagation over Kafka and RabbitMQ headers (KafkaTraceHeaderCarrier, RabbitTraceHeaderCarrier) via a new public FlowContextCarrier facade
  • Add cross-service trace propagation over HTTP (RestTemplate, Feign, WebClient, inbound servlet filter) via HttpTraceHeaderCarrier
  • Reject @Logged methods returning a reactive Publisher at startup instead of silently mismeasuring an unsubscribed pipeline
  • Validate incoming trace ids against this library's own format across all three carriers (HTTP/Kafka/RabbitMQ) to close a log-forgery/CRLF injection vector; document the remaining, unavoidable trust-boundary risk (a well-formed but spoofed trace id) in the README
  • Fix className resolution to report the concrete target class instead of the proxied interface; cache class/method name resolution per invocation site
  • Fix LoggedAspect to restore MDC and close the flow scope from a single finally block, so an Error from a collaborator no longer skips cleanup
  • Fix LoggedTargetGuardBeanPostProcessor to walk the superclass chain when checking for @Logged methods
  • Fix LazyMetricsRecorder to stop permanently caching a "no MeterRegistry" outcome
  • Clamp EmissionPolicy sample rate to [0.0, 1.0]

Bumps version to 1.1.0.

…ver Kafka/RabbitMQ/HTTP

- Add FlowContextPropagatingExecutor / FlowContextTaskDecorator for call-chain
  propagation across thread hand-offs, including virtual threads and @async
- Detect CompletableFuture return types and record duration/outcome on completion
  instead of submission
- Add MDC structured logging (LoggedMdcKeys, MdcPropagation, MdcContextPropagation)
- Add RequestAttributes/SecurityContext propagating executors and task decorators
  for caller-identity continuity across thread hand-offs
- Add cross-service trace propagation over Kafka and RabbitMQ headers
  (KafkaTraceHeaderCarrier, RabbitTraceHeaderCarrier) via a new public
  FlowContextCarrier facade
- Add cross-service trace propagation over HTTP (RestTemplate, Feign, WebClient,
  inbound servlet filter) via HttpTraceHeaderCarrier
- Reject @Logged methods returning a reactive Publisher at startup instead of
  silently mismeasuring an unsubscribed pipeline
- Validate incoming trace ids against this library's own format across all three
  carriers (HTTP/Kafka/RabbitMQ) to close a log-forgery/CRLF injection vector;
  document the remaining, unavoidable trust-boundary risk (a well-formed but
  spoofed trace id) in the README
- Fix className resolution to report the concrete target class instead of the
  proxied interface; cache class/method name resolution per invocation site
- Fix LoggedAspect to restore MDC and close the flow scope from a single
  finally block, so an Error from a collaborator no longer skips cleanup
- Fix LoggedTargetGuardBeanPostProcessor to walk the superclass chain when
  checking for @Logged methods
- Fix LazyMetricsRecorder to stop permanently caching a "no MeterRegistry"
  outcome
- Clamp EmissionPolicy sample rate to [0.0, 1.0]

Bumps version to 1.1.0.
@Fayupable
Fayupable merged commit 6b0b3bb into main Aug 3, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant