A Previsibilidade Temporal Parece Mais Forte no Fogo
Na maioria dos sistemas distribuídos, considero o tempo como flexível em vez de fixo. A latência da rede flutua, os atrasos de propagação se expandem e os limites de coordenação mudam sutilmente, o suficiente para que uma sequência rigorosa não possa ser assumida. Por causa disso, normalmente projeto com almofadas: buffers extras, novas tentativas e intervalos de execução mais amplos para levar em conta a incerteza.
Essa não foi minha experiência aqui.
Dentro dos grupos de validadores de baixa variância e agrupados de forma compacta do Fogo, o tempo alinhou-se muito mais de perto com as expectativas em execuções repetidas. A entrega de mensagens, as fases de coordenação e a ordem de execução permaneceram dentro de limites mais estreitos do que eu normalmente anteciparia. Em vez de empurrar a instabilidade de tempo para as aplicações, a própria rede a restringiu.
Essa mudança influencia o design do sistema.
Eu não precisei esticar as tolerâncias de sequenciamento ou me proteger contra picos de latência imprevisíveis. As etapas de execução acompanharam mais de perto os modelos de tempo planejados, permitindo que a lógica de orquestração permanecesse fiel à sua estrutura original. Em vez de projetar em torno da imprevisibilidade temporal, eu poderia depender de uma estrutura de tempo mais disciplinada.
No Fogo, o tempo se comportou menos como uma distribuição de probabilidade e mais como um parâmetro engenheirado, e isso fez com que a coordenação parecesse deliberada em vez de aproximada.
$FOGO #fogo @Fogo Official