-
Notifications
You must be signed in to change notification settings - Fork 10
Backend architecture
#Redis choice
We are currently using two data stores: Mongodb and Redis. The model layer we have is currently split over these two stores.
The choice for using two stores was based on the assumption that doing full-text search is faster in Mongodb with Solr, and the set based operations are faster in Redis. However, currently such fast set operations from Redis are not needed at all. The full text-indexing from solr in mongodb is used for finding facts based on search queries.
Currently, the following parts are stored in Redis:
- Facts
- Fact relations
- Opinions
- Sites
- GraphUser
- Channel
In Mongo, the following parts are stored:
- Fact data
- User
So, the fact and the user are divided in two stores. This demands coupling between the two data layers. For the coupling with mongodb ActiveRecord is used. For the coupling with Redis this was not possible, and after some search Ohm was used.
To get to the current situation, a lot of work is done. This lead to a working version and knowledge about both systems. However, the introduction of Redis reduced the speed of the team while not yet adding value.