
Una transacción puede interactuar con varios contratos inteligentes, cada uno con su propia idea de qué debe ocurrir primero. Esto crea un problema difícil. Imagina que un contrato prioriza las cancelaciones, mientras que otro prioriza las liquidaciones. Cuando una transacción interactúa con ambos, satisfacer las reglas de ordenación de un contrato puede complicar las del otro. La documentación de Ritual explora este desafío como una cuestión de composibilidad: ¿cómo pueden coexistir diferentes políticas de ordenación específicas de la aplicación sin generar conflictos? Una dirección propuesta es el Sistema de Prioridad Monótona, que asigna prioridades a las llamadas a funciones teniendo en cuenta sus dependencias. Bajo el sistema descrito, la construcción de bloques puede reducirse a ordenar por prioridad. La lección más amplia es que hacer cumplir las reglas dentro de una sola aplicación es solo parte del problema. Esas reglas también deben funcionar cuando las aplicaciones interactúan.
