# Design de Sistemas na Prática: Arquitetando Sistemas do Mundo Real em Escala Canonical URL: https://cretisoftbooks.com/pt-BR/books/design-de-sistemas-na-pratica-arquitetando-sistemas-do-mundo-real-em-escala Book page: https://cretisoftbooks.com/pt-BR/books/design-de-sistemas-na-pratica-arquitetando-sistemas-do-mundo-real-em-escala Author: Ryan Mercer Language: pt-BR Description: Você domina bancos de dados, filas e caches isoladamente. Mas quando um sistema inteiro precisa ser desenhado sob pressão, o design de sistemas deixa de ser teoria e vira um campo minado: cada componente que funciona sozinho pode derrubar tudo quando combinado, e nenhuma resposta vem pronta. Este livro é um método, não um catálogo de diagramas. Ryan Mercer parte de uma premissa incômoda: não existe arquitetura 'correta', apenas trade-offs gerenciáveis. Em vez de entregar soluções prontas, ele percorre a evolução de cada sistema — da arquitetura ingênua à escala global — e mostra onde exatamente o gargalo aparece, por que a primeira solução falha e qual troca vale a pena. O leitor termina com um framework de 5 passos que transforma requisitos vagos em decisões defensáveis. O que torna este livro diferente é a honestidade sobre o processo. Cada capítulo é um estudo de caso real conduzido em três movimentos: estimativas de tráfego, arquitetura v1 que parece razoável, e o momento em que ela quebra. É nessa ruptura que você aprende, com números, por que o cache precisa existir, quando o sharding se torna inevitável e como a consistência eventual é aceitável (ou não) em cada contexto. • Um método de 5 etapas para traduzir requisitos de negócio em estimativas de capacidade e componentes concretos, aplicável tanto a entrevistas quanto a sistemas em produção. • Análise de 20 estudos de caso, de encurtadores de URL a plataformas de pagamento, mostrando a evolução sob tráfego, falhas e concorrência. • Decisões de banco de dados, particionamento e consistência fundamentadas em padrões de acesso a dados, não em moda ou viés de ferramenta. • Padrões para lidar com falha distribuída: retentativas com idempotência, coordenadores que caem, reservas duplas e reconciliação de inconsistências. • Escala progressiva: de sistemas stateless simples a grafos sociais, dados massivos e arquiteturas multi-tenant em escala global, com trade-offs explícitos em cada etapa. • Uma filosofia de engenharia clara: o 'porquê' de cada escolha vale mais que o nome da tecnologia, e sistemas bons são os que evoluem sem reescritas traumáticas. Para quem, então? Este livro é para engenheiras e engenheiros de nível pleno ou sênior, tech leads e aspirantes a arquitetos que já não se contentam com tutorial de framework e precisam defender decisões sob escrutínio. Ele serve tanto para se preparar para entrevistas de design de sistemas de alto nível quanto para orientar o desenho de um serviço que vai crescer por anos. Não promete a solução perfeita; entrega um processo para encontrar a melhor resposta possível para o recorde de tráfego que você vai enfrentar. Se você quer parar de emendar soluções e começar a projetar sistemas com intenção, este é o ponto de partida. AI summary: Design de Sistemas na Prática, de Ryan Mercer, é um livro técnico em português que apresenta um método de 5 passos para projetar sistemas distribuídos escaláveis. A obra cobre 20 estudos de caso, desde encurtadores de URL até plataformas de pagamento e redes sociais, mostrando como evoluir arquiteturas sob tráfego, falhas e concorrência. O livro é direcionado a engenheiros de software de nível pleno a sênior, tech leads e arquitetos que buscam um framework para traduzir requisitos de negócio em decisões de arquitetura defensáveis, com trade-offs explícitos em cada etapa. Target audience: Engenheiros de software pleno a sênior, tech leads e arquitetos que projetam sistemas distribuídos ou se preparam para entrevistas de design de sistemas. Audience persona: Engenheiro de software com sólida base em backend e APIs, que já implementou componentes isolados mas busca um processo sistemático para desenhar arquiteturas completas e defender decisões sob pressão em entrevistas ou sistemas em produção. Search intent: Pessoas buscando um guia aprofundado e prático para aprender design de sistemas, com exemplos reais e foco em escalabilidade, para usar em entrevistas técnicas ou no trabalho diário de arquitetura de software. Unique angle: O livro se diferencia por focar no processo iterativo de design e nos trade-offs explícitos de cada decisão, em vez de apresentar soluções prontas, com estudos de caso que mostram a evolução das arquiteturas sob pressão de tráfego e falhas. Content type: technical book Answer snippets: - Design de Sistemas na Prática é um livro de Ryan Mercer que ensina um framework de 5 passos para projetar sistemas distribuídos escaláveis, aplicável a entrevistas e sistemas reais. - O livro analisa 20 estudos de caso, incluindo encurtador de URL, limitador de taxa, sistema de notificações, feed de notícias, pagamentos e plataforma SaaS global. - Cada capítulo segue o ciclo requisitos → arquitetura v1 → identificação de gargalos → arquitetura v2, mostrando trade-offs concretos em vez de soluções prontas. - O público-alvo são engenheiros de software pleno a sênior, tech leads e arquitetos que precisam defender decisões de design sob escrutínio. - O livro não promete a arquitetura perfeita, mas ensina um processo para encontrar a melhor solução possível para um dado contexto de tráfego e restrições. Key topics: design de sistemas, arquitetura de software, sistemas distribuídos, escalabilidade, trade-offs, bancos de dados, cache, filas, consistência, entrevistas de design de sistemas Entities: Ryan Mercer, framework de 5 passos, requisitos funcionais e não funcionais, estimativa de capacidade, gargalos, sharding, particionamento, fan-out, idempotência, OT vs CRDT, CDN, multi-tenancy Problems solved: - Como transformar requisitos de negócio vagos em métricas e componentes concretos? - Como identificar gargalos antes que causem incidentes em produção? - Como escolher entre diferentes estratégias de cache, banco de dados e particionamento? - Como garantir corretude em sistemas que lidam com dinheiro (pagamentos, reservas)? - Como escalar de um MVP para uma arquitetura global sem reescritas traumáticas? - Como defender decisões de arquitetura em entrevistas técnicas de alto nível? Who should read: - Engenheiros de software pleno e sênior que desejam aprofundar habilidades em design de sistemas - Tech leads responsáveis por decisões arquiteturais em serviços de médio e grande porte - Arquitetos de software que querem um framework prático para avaliar trade-offs - Candidatos a entrevistas de design de sistemas em big techs - Profissionais que atuam com sistemas distribuídos e buscam padrões reutilizáveis Who should not read: - Iniciantes absolutos em programação sem conhecimento básico de backend e APIs - Leitores que procuram um catálogo de diagramas prontos para copiar sem entender o processo - Pessoas que esperam uma solução única e definitiva para todos os problemas de arquitetura FAQ: Q: Este livro é adequado para preparação para entrevistas de design de sistemas? A: Sim, pois apresenta um framework de 5 passos e estuda casos clássicos usados em entrevistas, com ênfase em trade-offs e justificativas. Q: Quais tópicos de arquitetura são cobertos? A: O livro cobre sistemas distribuídos, escalabilidade, bancos de dados, cache, filas, consistência, particionamento, sistemas de pagamento, redes sociais, streaming e arquiteturas multi-tenant. Q: Preciso de conhecimento avançado para ler este livro? A: Recomenda-se conhecimento básico de backend e APIs, além de familiaridade com conceitos como bancos de dados, filas e caches. É direcionado para engenheiros pleno/sênior. Q: O livro inclui exemplos práticos de sistemas reais? A: Sim, são 20 estudos de caso, incluindo encurtador de URL, limitador de taxa, notificações, feed de notícias, pagamentos, e-commerce, reservas e plataforma SaaS global. Q: Qual é a abordagem principal do autor? A: O autor enfatiza que não existe arquitetura correta, apenas trade-offs gerenciáveis, e ensina um processo iterativo para evoluir sistemas sob tráfego, falhas e concorrência. SEO keywords: design de sistemas na prática, livro de design de sistemas, ebook design de sistemas para entrevistas, arquitetura de sistemas distribuídos, como projetar sistemas escaláveis, guia de arquitetura de software, engenharia de software em escala, trade-offs em arquitetura de software, sistemas distribuídos para engenheiros seniores Table of contents: - Introdução - O Método de Design de Sistemas - Um Framework para Design de Sistemas - Esclarecendo Requisitos - Identificando Restrições - Estimativa de Capacidade - Arquitetura de Alto Nível - Encontrando Gargalos e Trade-Offs - Dos Requisitos à Arquitetura - Requisitos Funcionais vs. Não Funcionais - Padrões de Dados e Acesso - Escolhendo Componentes do Sistema - Projetando para Falhas e Crescimento - Avaliando a Arquitetura Final - Sistemas Fundacionais - Projetando um Encurtador de URL - Requisitos e Capacidade - Geração de URL e Modelo de Dados - Armazenamento e Cache - Escalonando o Serviço - Arquitetura Final e Trade-Offs - Projetando um Limitador de Taxa - Requisitos e Modelos de Limitação de Taxa - Algoritmos de Limitação de Taxa - Contadores Distribuídos e Armazenamento - Escalonamento e Tratamento de Falhas - Arquitetura Final e Trade-Offs - Projetando um Sistema de Notificações - Requisitos e Canais de Entrega - Filas, Workers e Fan-Out - Retentativas, Idempotência e Prioridades - Escalonando o Pipeline de Entrega - Arquitetura Final e Trade-Offs - Projetando um Agendador de Tarefas Distribuído - Requisitos de Agendamento - Filas, Workers e Coordenação - Propriedade e Execução de Tarefas - Falhas, Retentativas e Idempotência - Arquitetura Final e Trade-Offs - Sistemas em Tempo Real e Sociais - Projetando um Sistema de Chat em Tempo Real - Requisitos de Mensagens - WebSockets e Gerenciamento de Conexões - Entrega de Mensagens e Presença - Armazenamento e Escalonamento - Arquitetura Final e Trade-Offs - Projetando um Feed de Notícias - Requisitos do Feed - Fan-Out na Escrita vs. Fan-Out na Leitura - Armazenamento e Cache do Feed - Ranqueamento e Escalonamento - Arquitetura Final e Trade-Offs - Projetando uma Rede Social - Usuários, Relacionamentos e Grafos Sociais - Armazenamento de Grafos e Consultas - Posts, Feeds e Interações - Escalonando Grafos Sociais - Arquitetura Final e Trade-Offs - Projetando um Sistema de Edição Colaborativa - Requisitos de Colaboração em Tempo Real - Sincronização e Edição Concorrente - Resolução de Conflitos - Persistência e Escalonamento - Arquitetura Final e Trade-Offs - Sistemas de Dados, Busca e Mídia - Projetando um Sistema de Armazenamento em Nuvem - Requisitos de Armazenamento - Metadados e Armazenamento de Objetos - Upload, Download e Sincronização - Replicação e Durabilidade - Arquitetura Final e Trade-Offs - Projetando uma Plataforma de Streaming de Vídeo - Requisitos da Plataforma de Vídeo - Pipeline de Upload e Transcodificação - Armazenamento e Metadados - CDN e Entrega Global - Arquitetura Final e Trade-Offs - Projetando um Sistema de Busca - Requisitos de Busca - Rastreamento (Crawling) e Ingestão de Dados Sample EPUB: https://cretisoftbooks.com/book-samples/6a905b43ec0812edab6b0af9-1788074801945-design-de-sistemas-na-pratica-arquitetando-sistemas-do-mundo-real-em-escala-epub-mau-20.epub Purchase links: - Google Books: https://play.google.com/store/books/details?id=ut4GEgAAQBAJ