Este é um grande problema arquitetônico, você sabe. Empresas como facebook e twitter gastaram muito tempo e dinheiro para resolver seu problema de forma robusta. Se o seu servidor de bate-papo for simples (como você escreveu), use o caminho 1.b, mas faça uma camada de abstração (algo como
saveConversation
, getConversation
). Se no futuro a velocidade não satisfizer você, pense em uma representação mais eficiente, como banco de dados NoSQL (LevelDB ou algo assim). Não pense em desempenho agora, faça um protótipo com boa abstração e arquitetura plugável.