vidakovic commented on code in PR #4281:
URL: https://github.com/apache/fineract/pull/4281#discussion_r2041190247
##########
buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle:
##########
@@ -247,5 +250,19 @@ dependencyManagement {
dependency 'io.cucumber:cucumber-java8:7.20.1'
dependency 'io.cucumber:cucumber-junit-platform-engine:7.20.1'
dependency 'io.cucumber:cucumber-spring:7.20.1'
+
+ dependency 'org.openjdk.jmh:jmh-core:1.37'
+ dependency 'org.openjdk.jmh:jmh-generator-annprocess:1.37'
+
+ dependency
'org.springframework.restdocs:spring-restdocs-asciidoctor:3.0.3'
+ dependency 'org.springframework.restdocs:spring-restdocs-mockmvc:3.0.3'
+ dependency
'org.springframework.restdocs:spring-restdocs-webtestclient:3.0.3'
+ dependency
'org.springframework.restdocs:spring-restdocs-restassured:3.0.3'
+
+ dependency 'com.lmax:disruptor:3.4.4'
+
+ dependency 'com.alibaba:transmittable-thread-local:2.14.5'
Review Comment:
Alright, you know we have a ton of thread local variables (tenant
identification, Spring Security and what not). When we switch the command
processing to asynchronous mode then we have to make sure that all those thread
local variables are still available in a potentially different thread from that
one that initiated the request; actually it is certain that the business logic
executing thread will be different from the one that receives the incoming API
request. So, to make things down the pipe still work we have to make sure that
all those variables are still accessible (if we don't do anything they will be
completely empty). That library helps with that issue.
Disclosure: in this first introduction of a new command processing
infrastructure the default processing mode (synchronous) is the only one we are
focusing on, "async" and "disruptor" (aka non-blocking) need (very likely) more
testing (and probably some additional tweaks). Which means technically we would
not need to take care of the thread local variables right now, it kind of was a
low hanging fruit with this library.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]