Recently, working for a new client here at UCI, we began to think in an internal Social Network, focused in educational purposes where students, researchers, teachers and more, could have an online space to discuss trends, make comments, give online talks, etc. My team was in charge to define the Data Model of the platform, and of course, to define the completed strategy to the new Data infrastructure behind the platform. We are a big fans of CentOS (and RHEL of course), for its incredible stability, performance and amazing security features through SELinux, the security project sponsored by Red Hat, available in many Linux distributions today, but in CentOS and Fedora, there is the last policy version (# 28) which is the most updated version of it.
We began to dig in the data model, and we saw an opportunity to create a new kind of data storage solution, using PostgreSQL like the center of the hub; but making interactions with NoSQL solutions focused in fast in-memory read/writes and of course, to be able to store the social interaction among the members of the network like a graph. So, we began to test Redis and Neo4j for these particular tasks. This post is to explain how we did it.