_All table considerations

_All tables include the site as part of the key. Unlike many base tables, the _all tables do not include foreign keys to other tables in the system. So, when you create a new replication category, if you can include the _all tables instead of the base tables, you will be less likely to have problems with missing data.

If you create a new module with a set of new tables and you plan to replicate some or all of the new data, you should think about using a base table containing the data for the local site, plus an _all table containing the data for all sites. This will simplify your replication process.

Be aware of the limitations of using _all tables for replication. There are no data validation triggers on _all tables. Not all data from the base table might be contained in the _all table. For example, an Item table in a Mongoose-based application might contain the local site's items and data about those items. The item_mst_all table contains information only about the items that are available for all sites. So, not everything about every item is replicated at the target site, because it takes data from item_mst_all.

There might be some simple base tables (for example, some of the code tables) that can be replicated directly because they do not contain many foreign keys or dependencies.