Fluid ne prend pas en charge les transactions au sens traditionnel du terme, mais Fluid dispose de "Group Ops". Celles-ci peuvent être créées à l'aide de la fonction orderSequentially api sur le ContainerRuntime. Certains DDS ont une enveloppe autour de cette API au niveau du conteneur.
Les opérations de groupe vous permettent d'emballer un groupe de opérations en un seul message, de sorte que le service de commande de Fluid ajoute ces opérations à l'ordre du jour de l'événement. Diffusion totale de la commande dans l'ordre.
Les opérations ne peuvent être regroupées qu'à l'intérieur d'un seul conteneur, car c'est la limite de la diffusion totale de la commande. Les opérations peuvent être regroupées à travers les DDS dans un seul conteneur. C'est toujours différent d'une transaction car nous ne garantissons pas le retour en arrière des opérations précédentes dans le cas où une opération ultérieure serait invalide.
Vous pouvez voir un exemple dans le Séquence DDS .
Ci-dessous, nous allons soumettre deux ops pour "hello" et "world" en une seule opération de groupe, en nous assurant que helloworld sera soumis en une seule fois sans intercaler les entrées.
const op1 = {
pos: 0,
seg: "hello",
type: MergeTreeDeltaType.INSERT,
}
const op2 = {
pos: 5,
seg: "world"
type: MergeTreeDeltaType.INSERT,
}
const groupOp = {
ops: [op1, op2],
type: MergeTreeDeltaType.GROUP,
}
sharedString.groupOperation(groupOp);
El Objet fluide ProseMirror a un code plus approfondi