
Одна транзакція може стосуватися кількох смартконтрактів, кожен з яких має власне уявлення про те, що має відбутися першим. Це створює складну проблему. Уявіть, що один смартконтракт надає пріоритет скасуванням, тоді як інший — ліквідаціям. Коли транзакція взаємодіє з обох, виконання правил упорядкування одного смартконтракту може ускладнити виконання правил іншого. Документація Ritual розглядає цей виклик як питання композиційності: як різні застосунко-специфічні політики упорядкування можуть співіснувати, не створюючи конфліктів? Одним із запропонованих напрямків є Монотонна система пріоритетів, яка призначає пріоритети викликам функцій, враховуючи їхні залежності. За описаною системою побудова блоку може бути зведена до сортування за пріоритетом. Більш загальний урок полягає в тому, що забезпечення правил всередині одного застосунку — це лише частина проблеми. Ці правила також повинні працювати, коли застосунки взаємодіють.
