This project is an implementation of DERA system using Java (the core) and Groovy (the examples). More theoretical foundation can be found here.
For a quick glance on how a DERA system works, you can jump to the folder src/main/groovy/examples
for some examples. Executing any of these Groovy classes will start corresponding DERA domains and trigger DERA actors and events.
- DERA core has been implemented using pure Java and some Google Guava collection helpers.
- DERA internal event channels is based on LMAX-Exchange Disruptor - a lock-free high performance messenging library.
- Java threads and Executors (Bounded), semaphores, lock.
- DERA interfaces (Web, REST, Web socket) have been developed using a lightweight embedded Eclipse Jetty server, Jersey JAX-RS, Apache HTTPClient and HTTPAsyncClient for handling HTTP/REST, FasterXML's Jackson for binding Java objects and JSON, and Joda-Time for date/time processing.