filmov
tv
Short Demo: AuroXRay Backend Architecture – Spring, RxJava, Virtual Threads

Показать описание
I am currently recording a complete walkthrough for the AuroXRay project, with a few parts still to be completed. Here’s a short clip where I hover over the backend architecture of AuroXRay – built using a combination of Spring + RxJava + Virtual Threads – discussing on how to handle context propagation & transaction management when working with Spring + RxJava.
One more thing which I missed when elucidating the transaction management is that in our controller class we are invoking subscribeOn(...) to the entire reactive chain, even in this case the @Transactional annotation won't work because Spring's transactional management is bound to the thread that invokes the method. It does not automatically propagate the transaction context across thread boundaries. In our scenario, since the controller and service logic run on different threads (due to the subscribeOn(...) call), the transaction context doesn't automatically carry over to the new thread.
It’s just an 8-minute clip, but I’ve covered much more in detail throughout the full walkthrough. The best part is that the entire project is primarily built with Java, which is quite different from the usual approach in Machine Learning, where generally Python dominates (because of its ecosystem & excellent wrapper implementation for C/C++ libraries). This also demonstrates that Java is just as powerful for AI/ML projects.
One more thing which I missed when elucidating the transaction management is that in our controller class we are invoking subscribeOn(...) to the entire reactive chain, even in this case the @Transactional annotation won't work because Spring's transactional management is bound to the thread that invokes the method. It does not automatically propagate the transaction context across thread boundaries. In our scenario, since the controller and service logic run on different threads (due to the subscribeOn(...) call), the transaction context doesn't automatically carry over to the new thread.
It’s just an 8-minute clip, but I’ve covered much more in detail throughout the full walkthrough. The best part is that the entire project is primarily built with Java, which is quite different from the usual approach in Machine Learning, where generally Python dominates (because of its ecosystem & excellent wrapper implementation for C/C++ libraries). This also demonstrates that Java is just as powerful for AI/ML projects.