Le plugin MongoDB permet de journaliser les événements d’acteurs persistants Akka sur une base de données MongoDB. Chaque acteur, lorsqu’il journalise ses événements, fournit un identifiant unique nommé persistenceId.
Par « journaliser », on entend:
– enregistrer les événements dans un journal afin de les rejouer pour revenir à l’état actuel de l’acteur,
– enregistrer périodiquement un état (un snapshot) permettant de rejouer les événements seulement à partir de cet état.
A l’origine, des événements et des états étaient enregistrés dans une même collection MongoDB (un journal commun et un snapshot commun) quel que soit l’acteur. La nouvelle fonctionnalité apportée permet l’enregistrement dans une collection dépendant de l’identifiant persistenceId de chaque acteur.
La modification consiste à:
– créer ou retrouver à la volée le journal et le snapshot en fonction du persistenceId,
– implémenter une interface permettant à l’utilisateur final de coder la manière de construire le nom des collections en fonction du persistenceId,
– adapter les méthodes du plugin lors de l’écriture ou la lecture des collections,
– adapter la configuration du plugin.
En savoir plus: https://github.com/scullxbones/akka-persistence-mongo
Licence Apache 2.0: https://github.com/scullxbones/akka-persistence-mongo/blob/master/LICENSE)
Akka Persistence: http://doc.akka.io/docs/akka/current/scala/persistence.html