We are in the process of evaluating MariaDB Galera cluster for our application. As I understand the cluster supports row level and statement level replication. We are leaning towards the row level replication. Our data model has multiple entities related to each other. We are going to have foreign key relationships among the entities.
Would like to understand if we go with row based replication how the cluster would handle the following scenario.
1> The cluster has 3 nodes
2> There are entities like Class and Student. In this we have a foreign key Student -> Class
3> We get two nodes (N1 & N2) get two separate updates from two different transactions
A) At time t1 : Node N1 gets inserts for a students(s1 and s2) for a particular classes c1 and c2 respectively.
B) At time t2 : The class c1 gets deleted from node N2
C) At time t3 : The change (addition of the student s1 and s2) gets pushed from N1 to N2
Would the entire transaction involving the students addition would be rolled back?