Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/htr3n/dera
Dynamic event-driven actors: events, actors, multi-threading, lock-free ring buffer Disruptor
https://github.com/htr3n/dera
actors event event-driven executor-service groovy java multithreading mutex rest semaphore websocket
Last synced: about 2 months ago
JSON representation
Dynamic event-driven actors: events, actors, multi-threading, lock-free ring buffer Disruptor
- Host: GitHub
- URL: https://github.com/htr3n/dera
- Owner: htr3n
- License: mit
- Created: 2018-06-06T21:27:09.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2022-11-16T08:55:58.000Z (about 2 years ago)
- Last Synced: 2023-03-01T13:25:55.135Z (almost 2 years ago)
- Topics: actors, event, event-driven, executor-service, groovy, java, multithreading, mutex, rest, semaphore, websocket
- Language: Java
- Homepage:
- Size: 1.86 MB
- Stars: 3
- Watchers: 2
- Forks: 2
- Open Issues: 36
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DERA : Proof-Of-Concept
This project is an implementation of [DERA](DERA-theoretical-part.md) system using Java (the core) and Groovy (the examples). More theoretical foundation can be found [here](DERA-theoretical-part.md).
![](DevelopmentToolchain.png)
#### Quick Start
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.
#### Technical Details
* DERA core has been implemented using pure Java and some [Google Guava](https://github.com/google/guava) collection helpers.
* DERA internal event channels is based on [LMAX-Exchange Disruptor](https://github.com/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](https://www.eclipse.org/jetty/) server, [Jersey JAX-RS](https://jersey.github.io), Apache [HTTPClient](https://hc.apache.org/httpcomponents-client-4.5.x/index.html) and [HTTPAsyncClient](https://hc.apache.org/httpcomponents-asyncclient-ga/index.html) for handling HTTP/REST, [FasterXML's Jackson](https://github.com/FasterXML/jackson) for binding Java objects and JSON, and [Joda-Time](http://www.joda.org/joda-time) for date/time processing.