Hi All,
We have an existing TCP/TLS based server application 'A' in production. Around 10K users can connect to this application. We now have a requirement as follows:
1). Intercept the traffic between Client and A
2). 'Inspect' the packet for a certain logic
3). If the packet matches, call a processing logic (THIS IS A BLOCKING OPERATION AS UNFORTUNATELY THE PROCESSING REQUIRES SOME SORT OF HUMAN INTERVENTION AND MAY TAKE BETWEEN 30 - 60 Seconds). The frequency for match might be just 5-10% of traffic
4). Based on the result of processing either send the packet as is to 'A' or modify the packet content and then send to 'A'.
I understand that this is most definitely an ideal scenario as the blocking operation is involved, but the requirements are pretty stringent.
I just wanted to understand if Nginx can help me in this context. Does Nginx support such blocking operations? Basically the idea is that if one request matches for the Blocking Operation processing, the other parallel/concurrent requests should not be BLOCKED(or wait). In layman terms a scenario where every request has an independent thread and processing.
Can anyone suggest a solution for this problem.
Again I acknowledge that this might not be the best way forward but somehow we are constrained.
Looking forward to some great advice.
Many Thanks,
Abhi