Много полезной информации почерпнул, перепланировал сильно дальнейшую разработку, спасибо вам!
PHP + MySQL были выбраны из за того, что ими я владею на уровне среднего писаря (в отличии от всех остальных технологий для вебчика и серверов). Так то хочется чего то нового и более подходящего, как раз Redis хочу попробовать.
Но и от MySQL не хочу полностью отказываться, потому что мне с ней общаться удобно (на данный момент), в ней можно хранить самих пользователей и историю сообщений, а онлайн-часть держать в той же Redis, изредка (раз в 3-5 минут) сбрасываю инфу в MySQL. Мне кажется это удобным (ну, опять же на данный момент и с моими текущими знаниями). На счёт "моральных" проблем хранения истории - это не мои проблемы. Вайберу можно, а мне нет?
На самом деле первоначальным условием написания чата было поставлено именно хранение истории.
До node.js всё никак не доберусь, надо его пощупать будет, и, возможно им и пользоваться для организации самого api, а не старым-добрым пыхом. Просто на данный момент я вообще не представляю что это такое, как и с чем его едят, есть ли под него библиотеки для "Push Notifications", в общем - ничего о нём не знаю.
С веб.мордой соединения держать нужно, с мобилками - не обязательно (приоритетная платформа яОСь, а там есть чудесные push notifications, на которых и был реализован мой первый тестовый чат). С постоянными соединениями у меня пока что проблемы, потому и не пишу эту часть, а выбираю технологии на которых будет удобно и гибко возможно реализовать задуманное.
Горизонтальное масштабирование - штука крутая, но при серьёзных нагрузках. У меня в чате, если его реально распространить по предприятию, будет 200-300 человек. Думаю такую нагрузку при грамотной организации даже PHP+MySQL потащит на нынешнем железе. Но это мелочи, надо делать сразу с масштабируемостью, согласен. Даже если не взлетит - опыт будет получен колоссальный.
UPD собственно, только что сбацал на VPS себе node.js, начинаю изучать что к чему. Одна беда - пых я знаю, а node.js в глаза не видел (js конечно умею, но не на столько, чтоб сервер писать).