
Um fluxo de trabalho pode ser concluído perfeitamente e ainda assim deixar o mundo externo incorreto. Imagine um aplicativo de comércio autônomo em torno de @RialoHQ recebendo um pedido para o último item em estoque. O fluxo de trabalho é concluído com sucesso. O pagamento é liquidado, o pedido é confirmado e o cliente recebe seu recibo. Do ponto de vista da aplicação na blockchain, tudo parece estar concluído. Mas a API do armazém nunca recebe a atualização final do estoque. O estado on-chain agora indica que o item foi vendido. O armazém ainda indica 1 disponível. Alguns minutos depois, outro sistema lê o estoque do armazém e tenta vender o mesmo item novamente. Nada necessariamente falhou dentro da transação original. O problema é que dois sistemas que deveriam descrever a mesma realidade divergiram. É aí que a ideia de reconciliação se torna interessante ao pensar em aplicações construídas em torno da Rialo. Quando software interage com APIs externas, bancos de dados, sistemas de pagamento e outros serviços do mundo real, a execução bem-sucedida nem sempre garante que todos os sistemas conectados terminaram no estado esperado. Portanto, uma aplicação pode precisar ir além de “Minha ação teve sucesso?” e eventualmente perguntar: “O mundo externo agora reflete o que deveria ter acontecido?” Se a aplicação esperava que o estoque passasse de 1 → 0, ela pode comparar esse resultado esperado com o estado relatado pelo sistema externo. Se o armazém ainda relata 1, a discrepância se torna algo que a aplicação pode identificar e tratar, em vez de assumir silenciosamente que tudo permaneceu sincronizado. O mesmo problema aparece em pagamentos, reservas, logística e muitos outros fluxos de trabalho onde a execução on-chain interage com sistemas fora da cadeia. Isso cria uma distinção importante. A execução lhe diz o que a aplicação fez. A reconciliação lhe diz se a realidade terminou onde a aplicação esperava que estivesse. Para aplicações que cada vez mais conectam a execução na blockchain ao mundo externo, ambos podem ser importantes. Porque concluir o fluxo de trabalho é uma coisa. Garantir que todos os sistemas conectados concordem sobre o que aconteceu é outra.
