The EduMsg platform is divided to three layers; the back-end layer, the logic layer, and the front-end layer.
The back-end layer comprises tables and associated stored procedures
which encapsulate the SQL statements manipulating those tables. PostgreSQL is used to store the data. A data store
app sits on top of the database to abstract database access and mapping of data back and forth between the database and the logic layer.
The logic layer is divided into four separate applications which communicate together using Redis
- a key-value cache server.
The logic applications are:
1. Users Application: an application that handles any user related requests. Examples are user login, user creation, fetching time-line tweets or user tweets and
2. Tweets Application: controls tweets creation, tweets deletion, retweeting and
favoriting tweets, etc.
3. Lists Application: maintains user lists, their creation, editing, memberships and
4. DMs Application: organizes private conversations between the system users.
Communication between the four apps and the data store app is done via message queues.
EduMsg will have three independent apps for iPhone, Android and the desktop. Currently, the Android app is in development.
These client apps communicate with the logic layer via JSON. A load balancer guarantees the fair distribution of requests
to web servers. A scaling app is planned to scale up the four logic apps as per need.