Under the folder retwisj
there is a copy of the code of RetwisJ. RetwisJ is a sample project published by the Spring team to showcase how one can use the Spring APIs to build a Twitter clone built on top of Redis using Spring Data Redis. RetwisJ is itself inspired by the original Redis, purposed to illustrate the design and implementation of a simple Twitter clone written using PHP with Redis as database.
Under src/main
there are two folders. One, choral/retwis
contains the Choral code of the RetwisJ re-implementation in Choral. The Choral implementation assume a three-tiered architecture, where three kinds of participants interact: Client, Server, and Repository.
The other folder, java
contains the Java files to test the Choral implementation.
Under retwis
we can find all the Java source code generated from the Choral sources, e.g., Retwis_Client, Retwis_Repository, and Retwis_Server, along with demo files. These showcase how one can combine the Choral-generated classes to implement different deployments of the same system. For example, DemoLocal
uses in-memory channels to deploy Retwis as a monolith and DemoHTTP
uses HTTP channels to enable socket-based communication, so that users can distribute the execution of the different participants that make up the architecture.
The other folders (commandInterfaces, databases, emitters, etc.) contain utilities used by the files in the retwis folder. In particular, org/springframework/data/redis/samples/retwisj
contains source files of the original RetwisJ implementation, which we re-use in our Choral re-implementation to illustrate how one can use Choral to integrate pre-existing Java projects.