So what's in the requirements that prevents you from using a trivial implementation? Where trivial is: db table (from_id, to_id, time, read_flag, deleted_flag, body) with one page that lists them and another that allows you to write them?
https://news.ycombinator.com/item?id=17798756
I'm really hoping that there is some "off the shelf" open source package that I can install.