Capítulo 6. Consistência
Este trabalho foi traduzido com recurso a IA. Agradecemos o teu feedback e comentários: translation-feedback@oreilly.com
Se estás familiarizado com bases de dados, a consistência é um dado adquirido. Sabes que os resultados das tuas consultas vão ser consistentes com os dados de entrada. Agora imagina que te atreves a atravessar a ponte da base de dados para o mundo do streaming. Podes contar com garantias de consistência semelhantes, mesmo com a complexidade adicional dos dados que chegam tarde e fora de ordem, bem como com a ênfase na baixa latência e no elevado rendimento?
Para os processadores de fluxo clássicos, a resposta é não. Eles garantem uma forma mais fraca de consistência chamada consistência eventual. Para casos de utilização de processamento de fluxos clássicos, que envolvem frequentemente agregações de dados em janelas, a consistência eventual é perfeita e também permite pipelines de dados com latência ultra-baixa, com um rendimento muito elevado e em escala extremamente grande. O problema é que, se vieres do mundo das bases de dados, a consistência eventual pode tornar-se uma experiência confusa e contra-intuitiva - especialmente em combinação com dados não janelados.
Neste capítulo, vamos usar um exemplo do domínio bancário para demonstrar o que pode correr mal em processadores de stream eventualmente consistentes como o Flink, o ksqlDB e o Proton se seguires apenas as tuas intuições do mundo das bases de dados.
Curiosamente, alguns sistemas ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access