blob: 7b536bbf2a5f1432db6d9ba635974a6f9f547dbd [file] [log] [blame]
= 33. Use scala in event sourcing modules
Date: 2019-12-13
== Status
Accepted (lazy consensus)
== Context
At the time being James use the scala programming language in some parts of its code base, particularily for implementing the Distributed Task Manager, which uses the event sourcing modules.
The module `event-store-memory` already uses Scala.
== Decision
What is proposed here, is to convert in Scala the event sourcing modules.
The modules concerned by this change are:
* `event-sourcing-core`
* `event-sourcing-pojo`
* `event-store-api`
* `event-store-cassandra`
== Rationales
This will help to standardize the `event-*` modules as `event-store-memory` is already written in Scala.
This change will avoid interopability concerns with the main consumers of those modules which are already written in Scala: see the distributed task manager.
In the long run this will allow to have a stronger typing in those parts of the code and to have a much less verbose code.
== Consequences
We will have to mitigate the pervading of the Scale API in the Java code base by implementing Java facade.