Yamm is a tool suite that allow you to do massive and scheduled data migration between Drupal sites.
It provides three packages, a client called yamm_client, a server called yamm_server and a common API package which is yamm_api.
You can handle a list of clients, each client is a remote Drupal
instance you want to synchronize. You associate them with profiles. Each
profile is a container for a view list.
The core synchronization is based on these views, each object referenced by
those will be synchronized, it's up to you to build the right views.
The synchronisation core algorithme uses a fully OO (Object Oriented) code. Which provide strong error handling using exceptions and a total abstraction for entities to synchronize.
This synchronization framework is able to construct large dependency tree between objects, and will allow the clients to automatically fetch the needed dependencies, even if you did not referenced them in views.
Right now, the core handle a short list of different entites, which are: