For full integration of Narayana CDI handling to MicroProfile context propagation it needed to support context propagation for asynchronous calls.
Currently asynchronous call is handled just synchronously. That means the transaction is finished just at time when CDI interceptor finishes with the business method. While there could be some unfinished async call running aside of the main method. The async then may work with already finished transactions which lead to an error.
Here we aim to integrate with MicroProfile Smallrye implementation. The approach will be adapted from Quarkus. The point is to delay finishing of the transaction up to time the async method is finished as well.
The Quarkus code for this here: