Oui, utiliser l'ObjectId de mongo est la voie à suivre. La seule chose est que vous devez les générer vous-même, dans le code de l'application. Ils sont censés être uniques au monde, différents travailleurs ne généreront pas deux ObjectId identiques, il n'y a donc pas de condition de concurrence dans ce sens.
Tous les pilotes officiels doivent fournir un moyen de générer ObjectId. Voici comment c'est en Ruby :
oid = BSON::ObjectId.new