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]

Reply via email to