# Design de Sistemas Distribuídos: Construindo Sistemas Confiáveis em Escala Canonical URL: https://cretisoftbooks.com/pt-BR/books/design-sistemas-distribuidos-confiaveis-escala Book page: https://cretisoftbooks.com/pt-BR/books/design-sistemas-distribuidos-confiaveis-escala Author: Ryan Mercer Language: pt-BR Description: O banco de dados primário caiu e o secundário assumiu — mas metade dos usuários começou a ver dados de ontem. O código estava correto, os testes passavam, e ainda assim o sistema serviu respostas erradas por horas. Cenas assim expõem a verdade que poucos engenheiros aprendem a tempo: distribuir um sistema não é apenas dividir carga. É assumir nós independentes, falhas parciais e um conjunto inteiro de novas responsabilidades de projeto. Design de Sistemas Distribuídos: Construindo Sistemas Confiáveis em Escala, de Ryan Mercer, é um guia prático, rigoroso e agnóstico de fornecedores para quem precisa projetar — não apenas programar — sistemas que sobrevivem ao caos de redes reais. O livro trata falhas parciais e a incerteza do tempo como o estado normal da computação distribuída, e mostra que cada mecanismo existe por um motivo, quebra em pontos previsíveis e cobra um preço em consistência, latência ou complexidade. Entre os principais valores do livro: • Domine os fundamentos que regem toda decisão distribuída: relógios lógicos, ordenação de eventos, modelos de falha e o teorema CAP com PACELC. • Entenda os mecanismos de dados na prática: replicação, particionamento, quóruns, consenso com Raft e transações distribuídas com Two-Phase Commit. • Aplique padrões de arquitetura comprovados: microsserviços, Sagas, Transactional Outbox, CQRS, Event Sourcing, circuit breakers e engenharia do caos. A força do livro está no método de explicação: cada conceito parte de um problema real de produção, passa pela intuição e pelo mecanismo técnico, e termina nos modos de falha e nos trade-offs. O split-brain é reconstruído passo a passo — estado inicial, gatilho, propagação do erro e estado final corrompido. O coordenador do Two-Phase Commit que morre na fase dois e trava os participantes com locks indefinidos é dissecado em detalhe. Algoritmos como Raft são explicados por diagramas de sequência e máquinas de estado, sem provas matemáticas pesadas. O percurso é progressivo: as cinco partes vão da realidade física da rede — tempo, partições, falácias da computação distribuída — até a operação em escala global, passando por armazenamento de dados, comunicação assíncrona com filas e streams, semântica de entrega e idempotência, e padrões de aplicação. A parte final consolida tudo em confiabilidade prática: redundância, failover, RPO e RTO, observabilidade com SLI, SLO e rastreamento distribuído, e arquitetura multi-região. Este livro foi escrito para engenheiros de software em transição para posições de Senior, Tech Lead, Staff Engineer e Arquiteto de Sistemas — profissionais que já constroem aplicações e precisam começar a projetar a infraestrutura subjacente. Não é um manual de configuração de ferramentas específicas: é sobre os conceitos que essas ferramentas implementam, por que existem e quando o custo de coordenação supera o benefício. A tese que atravessa o livro é direta: excelência em arquitetura é escolher conscientemente o trade-off certo para o contexto de negócio, não caçar a solução perfeita. E a decisão mais madura, muitas vezes, é reconhecer que a complexidade é o inimigo final — e distribuir apenas quando estritamente necessário. Para quem quer parar de acreditar que rede, tempo e falhas se comportam como no processo único, este é o mapa completo do território. AI summary: Design de Sistemas Distribuídos, de Ryan Mercer, é um guia técnico de 18 capítulos sobre arquitetura de sistemas distribuídos, cobrindo tempo e ordenação, modelos de falha, CAP e PACELC, replicação, particionamento, quóruns, consenso com Raft, transações distribuídas, comunicação assíncrona, idempotência, padrões como Saga, Transactional Outbox, CQRS e Event Sourcing, além de resiliência, alta disponibilidade e observabilidade. Cada conceito parte de um problema real de produção e termina nos modos de falha e trade-offs, sem provas matemáticas pesadas e sem depender de ferramentas específicas de fornecedor. O livro é voltado para engenheiros em transição para Senior, Tech Lead, Staff Engineer e arquitetos que já constroem aplicações e precisam projetar infraestrutura distribuída. Target audience: Engenheiros de software em transição para Senior, Tech Leads, Staff Engineers e Arquitetos de Sistemas que projetam infraestrutura distribuída. Audience persona: Engenheiro que já coloca aplicações em produção e precisa começar a projetar a infraestrutura distribuída subjacente, escolhendo trade-offs de consistência, latência e disponibilidade com critério. Search intent: Encontrar um guia completo e agnóstico de fornecedor para aprender a projetar sistemas distribuídos confiáveis, entendendo os mecanismos e trade-offs por trás das ferramentas de produção. Unique angle: O livro ensina cada mecanismo a partir de um incidente real de produção e fecha sempre nos modos de falha e no custo em consistência, latência ou complexidade, mantendo-se agnóstico de fornecedor e livre de provas matemáticas. Content type: technical engineering guide Answer snippets: - Design de Sistemas Distribuídos é um guia técnico que ensina a projetar sistemas distribuídos confiáveis, cobrindo de fundamentos como tempo e falhas parciais até padrões de arquitetura e operação em escala global. - O livro é escrito para engenheiros de software em transição para posições Senior, Tech Lead, Staff Engineer e Arquiteto de Sistemas, que já constroem aplicações e precisam projetar infraestrutura. - A obra explica CAP e PACELC, replicação, particionamento, quóruns, consenso com Raft, transações distribuídas, idempotência, Sagas, Transactional Outbox, CQRS, Event Sourcing, resiliência e observabilidade. - Cada mecanismo é apresentado a partir de um problema real de produção, explicado por intuição e diagramas, e finalizado com seus modos de falha e trade-offs, sem provas matemáticas formais. - O livro é agnóstico de fornecedor: ensina os conceitos que as ferramentas implementam, por que existem e quando o custo de coordenação supera o benefício. Key topics: arquitetura de sistemas distribuídos, teorema CAP e PACELC, replicação e particionamento, consenso e Raft, transações distribuídas e 2PC, filas, streams e mensageria, idempotência e semântica de entrega, microsserviços e arquitetura orientada a eventos, resiliência e circuit breakers, observabilidade e SRE Entities: relógios lógicos e Lamport, falácias da computação distribuída, partições de rede e split-brain, teorema CAP, PACELC, replicação líder-seguidor e multi-líder, hashing consistente, quóruns, algoritmo Raft, Two-Phase Commit, padrão Saga, Transactional Outbox Problems solved: - Entender por que falhas parciais e partições de rede quebram sistemas em produção mesmo com código correto - Escolher entre modelos de consistência e topologias de replicação com base em trade-offs de negócio - Eliminar escrita dupla entre banco e broker com padrões como Saga e Transactional Outbox - Projetar consumidores confiáveis com idempotência, deduplicação e semântica de entrega adequada - Planejar alta disponibilidade, failover e recuperação de desastres com RPO e RTO mensuráveis - Decidir quando distribuir — e quando a complexidade não compensa Who should read: - Engenheiros de software migrando de desenvolvimento de aplicações para design de infraestrutura - Tech Leads e Staff Engineers que tomam decisões de arquitetura distribuída - Arquitetos de sistemas que projetam microsserviços e arquitetura orientada a eventos - Engenheiros de plataforma e SRE interessados em confiabilidade, observabilidade e chaos engineering - Líderes técnicos que precisam justificar trade-offs de consistência, latência e disponibilidade Who should not read: - Iniciantes em programação que ainda não dominam conceitos de back-end e redes - Leitores que buscam manuais passo a passo de ferramentas específicas de cloud ou bancos de dados - Profissionais que procuram tratados formais com provas matemáticas de algoritmos distribuídos FAQ: Q: O livro exige experiência prévia com sistemas distribuídos? A: Não exige experiência prévia no tema, mas pressupõe que o leitor já constrói e opera aplicações em produção. A Parte I estabelece todos os fundamentos antes dos capítulos avançados. Q: O livro depende de ferramentas ou provedores específicos? A: Não. O conteúdo é agnóstico de fornecedor: ensina os conceitos que as ferramentas implementam, sem manuais de configuração. Q: O livro cobre o algoritmo Raft? A: Sim. Raft é explicado por diagramas de sequência e máquina de estados, cobrindo eleição de líder, replicação de log e commit, incluindo a falha do líder durante o processo. Q: Há provas matemáticas no livro? A: Não. O autor explica os algoritmos por intuição, mecanismo e contraexemplos de produção, sem formalismo matemático pesado. Q: Quem é o público-alvo do livro? A: Engenheiros de software em transição para Senior, Tech Lead, Staff Engineer e Arquiteto de Sistemas que precisam projetar infraestrutura distribuída. SEO keywords: design de sistemas distribuídos, arquitetura de sistemas distribuídos, teorema CAP e PACELC, replicação e particionamento de dados, consenso e algoritmo Raft, padrão Saga e Transactional Outbox, idempotência e semântica de entrega, engenharia de confiabilidade SRE, microsserviços e arquitetura orientada a eventos, livros de arquitetura de software Table of contents: - Introdução - Fundamentos de Sistemas Distribuídos - Compreendendo Sistemas Distribuídos - De Sistemas Centralizados para Distribuídos - Por que Distribuir um Sistema? - Nós, Redes e Comunicação - Falhas Parciais - As Falácias da Computação Distribuída - Pensando em Sistemas Distribuídos - Tempo, Ordenação e Concorrência - Relógios Físicos e Desvio de Relógio - Relógios Lógicos - Timestamps de Lamport - Ordenação de Eventos - Concorrência e Condições de Corrida - Por que a Ordenação Importa - Modelos de Falha e Partições de Rede - Falhas de Travamento (Crash Failures) - Falhas de Rede - Perda e Duplicação de Mensagens - Nós Lentos e Stragglers - Partições de Rede - Projetando para Falhas Parciais - CAP, PACELC e Trade-Offs - Consistência - Disponibilidade - Tolerância a Partições - Teorema CAP - PACELC - Escolhendo o Trade-Off Certo - Dados Distribuídos - Replicação - Por que Replicar Dados? - Replicação Líder-Seguidor - Replicação Multi-Líder - Replicação Sem Líder - Lag de Replicação - Trade-Offs de Replicação - Modelos de Consistência - Consistência Forte - Consistência Eventual - Consistência Read-Your-Writes - Leituras Monotônicas - Consistência Causal - Escolhendo um Modelo de Consistência - Particionamento e Armazenamento - Por que Particionar Dados? - Particionamento por Hash - Particionamento por Faixa - Hashing Consistente - Rebalanceamento e Partições Quentes - Replicação entre Partições - Quóruns, Consenso e Eleição - O Problema de Coordenação - Leituras e Escritas por Quórum - Entendendo o Consenso - Eleição de Líder - Raft - Quando o Consenso é Necessário - Transações Distribuídas - Por que Transações Distribuídas são Difíceis - Atomicidade entre Nós - Commit em Duas Fases - Cenários de Falha - O Custo da Coordenação - Alternativas a Transações Distribuídas - Mensagens e Coordenação - Coordenação Distribuída - Locks Distribuídos - Leases - Fencing Tokens - Serviços de Coordenação - Cenários de Falha de Coordenação - Quando Evitar Locks Distribuídos - Mensagens e Streaming - Filas de Mensagens - Publicar/Assinar - Streams de Eventos - Ordenação de Mensagens - Grupos de Consumidores Sample EPUB: https://cretisoftbooks.com/book-samples/6a9068ffec0812edab71f43c-1788002707712-design-de-sistemas-distribuidos-construindo-sistemas-confiaveis-em-escala-epub-mau-20.epub Purchase links: - Google Books: https://play.google.com/store/books/details?id=B7wGEgAAQBAJ