Вопрос программистам по написанию чата

Вопрос программистам по написанию чата
интересует как лучше написать чат. т.е. с БД или без, нужен ли ajax, что вообще должно входить в структуру чата кроме отправки сообщений и создания комнат, т.е. более программная часть.
Цель, допустим, что чат будет находиться на дорогом сервере, и, чтобы выдерживал 100000 посетителей онлайн.
Спрашиваю потому что почитал и как я понял простые чаты даже на дорогом сервере не будут стабильно работать.
Встречных вопросов прошу не задавать зачем мне это и т.д.

  • Возьмите Jabber. Исходники есть (opensource - как и клиентов (коих много) так и серверов, поддерживается комнаты, шифрование, уровни модерации, группы, часто в клиентах есть связки с LDAP, децентрализация, шлюзы тоже не последнюю роль играют.. . Что ещё для счастья надо? =) Jabber используется Google (Google Talk), LJ, QIP (как "собственный" протокол") и много много кем ещё. У многих хостеров Jabber сервер работает по умолчанию. Лучше хорошо проверенный велосипед чем свой непроверенный под такой нагрузкой.. . БД при 100к юзеров нужна будет точно. ну или LDAP (если есть на чем поднять и надо)

    Если хочется самому с нуля - можно идти разными путями. Я видел и клиентов на flash и на javascript и на php...

  • С бд скорее всего, нужно будет хранить данные пользователей, данные комнат, возможно часть истории сообщений.
    Стандартная архитектура чата - pub/sub через websocket или comet на ассинхронный бэкенд.
    Чтоб все самому не писать можно пользоватся http://faye.jcoglan.com/ , либо чем-то другим.