We currently have multiple CS instances talking to a single Mongo database. That is CS on several servers and each of those servers running with multiple forks, but they are all talking to a single db. I don’t know the specifications of those servers because that is not my area on responsibility.
A CS instance can only support a single mongo connection for the topic files so if you want multiple db’s then you’ll probably have to shard further up the stack, perhaps by peeking into the user part of the CS protocol message.
LTM (long term memory) is under CS script control whereas reading and writing topic files (to mongo) is integral to the engine. But CS has this convention that if a fact file that you are ^import() or ^export()‘ing uses a file name that starts “USERS/ltm” then the engine will redirect that to a database if you have included a ltm definition as part of the database connection parameter. We read/import LTM in preprocess and write it out in postprocess topics, but it is totally under script control and therefore you could use different file names at different places.
What you put into ltm is totally up to you. We use it to record bits of data that we want to hang on to longer than the current transaction.
For actual conversation logging then our system has an internal api that we POST to, because that is ever increasing and there is no need to keep it around in the CS world.