Open Miles-Garnsey opened 1 year ago
Having spoken to Olivier in our team, he also recommends considering a longer term migration to using the object mapper in the storage layer.
I'm not typically a huge fan of ORMs, but I've used the mapper and it is probably the best ORM I've used, so I'd consider it to remove some boilerplate down the track. Just making a note here for further discussion.
Project board link
Reaper currently has a few idiosyncrasies which make it hard for new developers to get started.
(There are probably more issues, these are just three that come to mind).
It might be interesting to investigate the possibility of evolving towards a package-by-feature approach to simplify ongoing maintenance of the codebase.
A first step (which would likely be useful even as a standalone initiative) might be to separate out the CassandraStorage and MemoryStorage functionality into DAOs for each type, and work to eliminate the passing of ResultSet(Futures) around.
This first step seems particularly helpful because (1) the CassandraStorage class is simply too big and has low cohesion, (2) the methods in that class are not really strongly typed, and (3) the application layer logical data model is quite different to the physical data model persisted in Cassandra (so the DAO layer is relatively thick).
┆Issue is synchronized with this Jira Story by Unito ┆Issue Number: REAP-73