Team,

Our application is a Root Cause Analysis Computation Engine for Telecom networks. We have been implementing the logics in java only so far. 

We are now planning to write DSLs for each feature and write the logics using the DSL. We have implemented a framework for plugging in any number of DSLs and integrated that DSL Framework with our application.

Each of the logics written over the DSL are executed concurrently using 40 or 50 or 60 threads based on the rate of the incoming events. Due to the concurrency, we are now creating `GroovyShell` object for every execution and calling `shell.evaluate(ourScriptFile)` to run the DSL scripts with our own Binding object and delegates.

This prevents the system to run the logic at its own speed. Everytime parsing and running takes significant time which reduces the event handling capacity of the application.

I have attempted with `GroovyShell` and `GroovyScriptEngine`. But both are offering same performance levels. GroovyShell is slightly better than GroovyScriptEngine.

Under these circumstances, what is the best way to wrap our script logic, that is based on our own DSLs, and run it concurrently without any overhead for parsing, compilation, etc?????????


Pls advice

Reg,
Adithyan K