Комментарии 18
Ещё труднее представить что будет когда команда с её team lead-ом узнает что из MDC убрали thread propagation…
Попробуйте запустить async operation в вашей аппликации в вашем thread pool-е (если конечно team lead разрешит) и напишите тут о ваших findings.
Свой decorator, который вешается на thread pool. Почти как таковой от security.
У меня свой mdc closeable, и утильный метод, который знает, что именно в MDC нужно прокидывать. Могу скинуть код, всё лаконично.
И да, sleuth в проекте присутствует и свои поля пробрасывает сам. У меня только нужные мне (api uri, логин юзера, т.п.).
т. е. все сейчас должны знать что надо пользоваться вашим thread pool — ом для async operations. Не так все тривиально
Всё-таки чаще это или дефолтный, или прям тут в приложении однажды описанный бин, которому нужно просто вызвать setTaskDecorator.
Если над одним кодом работает столько незнакомых людей, всё равно это ничего не ломает — они продолжают писать просто Async. Ситуация, когда и разработчиков овер-много, и тред-пулов в контекст уже набросали — за скоупом моего решения.
Который вызовет вашу апишку и успешно упадет. Никакого мерджа. Чтение доки, спокойный фикс и в прод без багов.
Вот к чему приводит чтение документации по диагонали.
Везде, когда заходит речь про Around, пишут, что возвращаемое им значение переопределяет значение, возвращённое методом. В этом, собственно, и смысл этого типа аспектов. А void с точки зрения JVM — это просто метод, который всегда возвращает null. Вопрос к тимлиду в первую очередь: как создавший проблему код вообще прошёл ревью?
Как трассировка запросов сломала API