Category kubernetes

Blueprint - Rate Limit por Pods com Istio Service Mesh

Este blueprint tem objetivo de mostrar a forma de utilizar o EnvoyFilter para implementar um rate limit local, a nível de pod, para preservar o capacity a nível proativo e...

Blueprint - Experimento de Warmup Progressivo com Istio e Argo Rollouts

O gerenciamento de tráfego sincrono durante rollouts de aplicações em Kubernetes pode oferecer algum tipo de ruido operacional e refletir na experiência dos clientes, especialmente quando lidamos com aplicações que...

Keda - Escalando Aplicações por Requisições HTTP em Ambientes de Alta Demanda

O Keda Autoscaler é uma das minhas tecnologias favoritas no Landscape da CNCF. Considero, sem meias palavras, divertidas as possibilidades que ele oferece para trabalhar com autoscaling.

Argo-Rollouts — 'Qual a forma mais simples de executar Canary Releases e Blue/Green Deployments no Kubernetes?'

O Deploy em ambientes Cloud Native pode ser, se não é, a parte mais desafiadora no dia a dia do ciclo de vida de um software, principalmente se a atualização...

Karpenter — Estratégias para resiliência no uso de Spot Instances em produção

Update 17/11/2023 - Alguns manifestos mudam sua estrutura a partir da versão 0.32.x do Karpenter. Nessa data de hoje aproveitei para atualizar os exemplos para os schemas mais novos. Confira...

Provisionando um cluster de EKS sem Node Groups com Karpenter

A proposta dessa PoC é criar e gerenciar um cluster de EKS utilizando apenas (ou quase) o Karpenter como provisionamento de recursos computacionais pro Workload produtivo, tirando a necessidade de...

Sobrevivendo a cenários de caos no Kubernetes com Istio e Amazon EKS

Na sua casa você pode usar o que você quiser, aqui hoje vamos usar Istio. Sem tempo pra chorar irmão…

Category istio

Blueprint - Rate Limit por Pods com Istio Service Mesh

Este blueprint tem objetivo de mostrar a forma de utilizar o EnvoyFilter para implementar um rate limit local, a nível de pod, para preservar o capacity a nível proativo e...

Blueprint - Experimento de Warmup Progressivo com Istio e Argo Rollouts

O gerenciamento de tráfego sincrono durante rollouts de aplicações em Kubernetes pode oferecer algum tipo de ruido operacional e refletir na experiência dos clientes, especialmente quando lidamos com aplicações que...

Sobrevivendo a cenários de caos no Kubernetes com Istio e Amazon EKS

Na sua casa você pode usar o que você quiser, aqui hoje vamos usar Istio. Sem tempo pra chorar irmão…

Category disaster-recovery

Disaster Recovery — Projetando e Gerenciando Arquiteturas Multi-Region na AWS com Terraform

Este artigo foi o mais longo e cansativo que escrevi em muito tempo, então considere esse disclaimer como um pedido de desculpas escrito após a finalização do mesmo. Recomendo que...

Sobrevivendo a cenários de caos no Kubernetes com Istio e Amazon EKS

Na sua casa você pode usar o que você quiser, aqui hoje vamos usar Istio. Sem tempo pra chorar irmão…

Category service-mesh

Blueprint - Rate Limit por Pods com Istio Service Mesh

Este blueprint tem objetivo de mostrar a forma de utilizar o EnvoyFilter para implementar um rate limit local, a nível de pod, para preservar o capacity a nível proativo e...

Blueprint - Experimento de Warmup Progressivo com Istio e Argo Rollouts

O gerenciamento de tráfego sincrono durante rollouts de aplicações em Kubernetes pode oferecer algum tipo de ruido operacional e refletir na experiência dos clientes, especialmente quando lidamos com aplicações que...

Sobrevivendo a cenários de caos no Kubernetes com Istio e Amazon EKS

Na sua casa você pode usar o que você quiser, aqui hoje vamos usar Istio. Sem tempo pra chorar irmão…

Category aws

Blueprint - Golang SQS Consumer Performance Tunning

Este blueprint apresenta técnicas para tunar um consumer SQS em Golang, explorando uso eficiente de channels, processamento em lote, controle de concorrência e medições reais de performance.

Disaster Recovery — Projetando e Gerenciando Arquiteturas Multi-Region na AWS com Terraform

Este artigo foi o mais longo e cansativo que escrevi em muito tempo, então considere esse disclaimer como um pedido de desculpas escrito após a finalização do mesmo. Recomendo que...

Argo-Rollouts — 'Qual a forma mais simples de executar Canary Releases e Blue/Green Deployments no Kubernetes?'

O Deploy em ambientes Cloud Native pode ser, se não é, a parte mais desafiadora no dia a dia do ciclo de vida de um software, principalmente se a atualização...

Karpenter — Estratégias para resiliência no uso de Spot Instances em produção

Update 17/11/2023 - Alguns manifestos mudam sua estrutura a partir da versão 0.32.x do Karpenter. Nessa data de hoje aproveitei para atualizar os exemplos para os schemas mais novos. Confira...

Provisionando um cluster de EKS sem Node Groups com Karpenter

A proposta dessa PoC é criar e gerenciar um cluster de EKS utilizando apenas (ou quase) o Karpenter como provisionamento de recursos computacionais pro Workload produtivo, tirando a necessidade de...

Category arquitetura

Disaster Recovery — Projetando e Gerenciando Arquiteturas Multi-Region na AWS com Terraform

Este artigo foi o mais longo e cansativo que escrevi em muito tempo, então considere esse disclaimer como um pedido de desculpas escrito após a finalização do mesmo. Recomendo que...

Karpenter — Estratégias para resiliência no uso de Spot Instances em produção

Update 17/11/2023 - Alguns manifestos mudam sua estrutura a partir da versão 0.32.x do Karpenter. Nessa data de hoje aproveitei para atualizar os exemplos para os schemas mais novos. Confira...

Provisionando um cluster de EKS sem Node Groups com Karpenter

A proposta dessa PoC é criar e gerenciar um cluster de EKS utilizando apenas (ou quase) o Karpenter como provisionamento de recursos computacionais pro Workload produtivo, tirando a necessidade de...

Category terraform

Disaster Recovery — Projetando e Gerenciando Arquiteturas Multi-Region na AWS com Terraform

Este artigo foi o mais longo e cansativo que escrevi em muito tempo, então considere esse disclaimer como um pedido de desculpas escrito após a finalização do mesmo. Recomendo que...

Argo-Rollouts — 'Qual a forma mais simples de executar Canary Releases e Blue/Green Deployments no Kubernetes?'

O Deploy em ambientes Cloud Native pode ser, se não é, a parte mais desafiadora no dia a dia do ciclo de vida de um software, principalmente se a atualização...

Karpenter — Estratégias para resiliência no uso de Spot Instances em produção

Update 17/11/2023 - Alguns manifestos mudam sua estrutura a partir da versão 0.32.x do Karpenter. Nessa data de hoje aproveitei para atualizar os exemplos para os schemas mais novos. Confira...

Provisionando um cluster de EKS sem Node Groups com Karpenter

A proposta dessa PoC é criar e gerenciar um cluster de EKS utilizando apenas (ou quase) o Karpenter como provisionamento de recursos computacionais pro Workload produtivo, tirando a necessidade de...

Category karpenter

Karpenter — Estratégias para resiliência no uso de Spot Instances em produção

Update 17/11/2023 - Alguns manifestos mudam sua estrutura a partir da versão 0.32.x do Karpenter. Nessa data de hoje aproveitei para atualizar os exemplos para os schemas mais novos. Confira...

Provisionando um cluster de EKS sem Node Groups com Karpenter

A proposta dessa PoC é criar e gerenciar um cluster de EKS utilizando apenas (ou quase) o Karpenter como provisionamento de recursos computacionais pro Workload produtivo, tirando a necessidade de...

Category argo-rollouts

Argo-Rollouts — 'Qual a forma mais simples de executar Canary Releases e Blue/Green Deployments no Kubernetes?'

O Deploy em ambientes Cloud Native pode ser, se não é, a parte mais desafiadora no dia a dia do ciclo de vida de um software, principalmente se a atualização...

Category system-design

System Design - Observabilidade e Monitoramento

Após elaborarmos diversos tópicos como Performance, Capacidade e Escalabilidade, Métricas de Continuidade de Negócio e diversos outros assuntos relacionados, este capítulo tem o objetivo de fazer um “recap” de alguns...

System Design - Single Point of Failure, Disaster Recovery e Continuidade Operacional

Entenda o que é Single Point of Failure (SPoF) e como projetar sistemas resilientes utilizando redundância, replicação, failover automático e estratégias de Disaster Recovery. Explore também métricas essenciais de confiabilidade...

System Design - Cell-Based Architecture

Um guia profundo sobre Cell-Based Architecture e como projetar sistemas distribuídos resilientes utilizando células independentes, replicação de dados, shuffle sharding e isolamento de falhas para reduzir blast radius em larga...

System Design - Bulkhead Pattern

Entenda o Bulkhead Pattern e como ele isola falhas em sistemas distribuídos. Explore estratégias de segregação de recursos, sharding, segmentação de tenants e redução de blast radius para aumentar a...

System Design - Capacity Planning e a Teoria das Filas

Um guia aprofundado de Capacity Planning em sistemas distribuídos, explorando Teoria das Filas, Lei de Little, Knee Curve e modelagem de carga para entender limites de throughput, latência e concorrência...

System Design - Event Sourcing

Uma explicação completa e prática sobre Event Sourcing, cobrindo Event Store, Event Bus, Projections, Read Models, Snapshotting e Rehydration, além de estratégias para lidar com consistência eventual, versionamento, idempotência e...

System Design - Teorema PACELC

Entenda o Teorema PACELC e como ele expande o CAP ao explicar os trade-offs entre consistência, disponibilidade e latência em sistemas distribuídos modernos, incluindo classificações como PA/EL, PC/EL e PC/EC....

System Design - Databases, Modelos de Dados e Indexação

Neste artigo abordamos a evolução dos bancos de dados, os diferentes modelos de dados (relacional, documentos, grafos), tipos de indexação (B-Tree, Hash, LSM) e como essas escolhas afetam a performance...

System Design - Storage, RAID e Sistemas de Arquivos

Este artigo explora os principais conceitos de armazenamento em sistemas distribuídos, desde tipos como block, file e object storage até práticas como replicação, caching, consistência e estratégias para alta disponibilidade....

System Design - Backend for Frontend (BFF)

Neste artigo exploramos o padrão arquitetural Backend for Frontend (BFF), abordando sua aplicação na segregação de canais, composição de payloads, microfrontends, versionamento e resiliência em sistemas distribuídos modernos.

System Design - Padrões de Resiliência

Neste artigo, exploramos os principais padrões de resiliência em System Design, como Retry, Fallback, Circuit Breaker, Backpressure e outros, aplicados ao contexto de sistemas distribuídos tolerantes a falhas.

System Design - Service Mesh

Este artigo explica o conceito de Service Mesh como padrão de comunicação em sistemas distribuídos, abordando seus componentes, modelos de implementação e benefícios como segurança, resiliência e telemetria nativa.

System Design - Estratégias de Deployment

Neste artigo, revisamos as principais estratégias de deployment como Canary, Blue-Green, Rolling Updates, Shadow Deployments e Feature Flags, explicando quando aplicá-las, seus benefícios e como contribuem para sistemas resilientes e...

System Design - Saga Pattern

Neste artigo exploramos o Saga Pattern como solução para transações distribuídas, abordando conceitos de orquestração, coreografia, compensações, consistência eventual e boas práticas em microsserviços.

Um Guia de Literatura Para Sistemas Distribuídos (e o porquê eu não quero que você o siga)

Este artigo apresenta um roteiro pessoal com os livros que mais impactaram minha jornada em sistemas distribuídos, confiabilidade e arquitetura moderna. Uma curadoria não linear, feita para quem já percorreu...

System Design - Scale Cube

O artigo explora o Scale Cube como modelo conceitual de escalabilidade, abordando os eixos X (horizontal), Y (funcional) e Z (particionamento) para guiar a evolução de sistemas distribuídos robustos e...

System Design - Testes de Carga e Estresse

Este artigo aborda os principais tipos de testes de carga aplicados a sistemas distribuídos — Load, Stress e Capacity Testing — com foco em performance, limites operacionais e preparação para...

System Design - Replicação de Dados

Neste artigo, mergulhamos nos fundamentos da replicação de dados em sistemas distribuídos, discutindo modelos como primary-replica e multi-master, estratégias como replicação síncrona e assíncrona, e padrões como CDC, Event-Carried State...

System Design - Sharding e Particionamento de Dados

Este artigo explora como aplicar sharding e particionamento em sistemas distribuídos para dividir grandes volumes de dados, escalar horizontalmente a camada de persistência e isolar falhas com mais eficiência.

System Design - CQRS (Command Query Responsability Segregation)

Este artigo explora o padrão CQRS como forma de segregar responsabilidades de leitura e escrita, ilustrando seus benefícios em cenários de sistemas distribuídos com alta concorrência e grandes volumes de...

System Design - API Gateways

Neste artigo, exploramos o conceito de API Gateway como padrão arquitetural para exposição de serviços, cobrindo funções como autenticação, roteamento, rate limiting, canary deployments e governança em ambientes distribuídos.

System Design - Mensageria, Eventos, Streaming e Arquitetura Assincrona

Neste artigo, exploramos a comunicação assíncrona em sistemas distribuídos, abordando conceitos de filas, eventos, mensageria, brokers e streamings sob o ponto de vista de System Design moderno.

System Design - Padrões de Comunicação Síncronos

Este capítulo apresenta os principais padrões de comunicação síncronos entre serviços, como REST, gRPC e GraphQL, explicando sua aplicabilidade, vantagens e desafios sob a perspectiva de System Design.

System Design - Protocolos e Comunicação de Rede

Neste artigo, mergulhamos nos protocolos fundamentais de rede, como TCP, UDP e HTTP, explicando seu papel na construção de sistemas distribuídos modernos e como impactam diretamente o desempenho e a...

System Design - Cache

Neste artigo, exploramos o papel do caching em sistemas distribuídos, detalhando estratégias e padrões arquiteturais para aumentar a eficiência, reduzir latência e otimizar o acesso a dados com alto desempenho....

System Design - Performance, Capacidade e Escalabilidade

Este artigo explora os pilares fundamentais de performance, capacidade e escalabilidade sob a ótica de System Design, trazendo definições claras, distinções práticas e implicações arquiteturais em sistemas modernos.

System Design - Microsserviços, Monolitos e Domínios

Este artigo apresenta uma análise completa sobre as arquiteturas de monólitos e microsserviços, abordando suas características, benefícios, desafios e o papel da modelagem de domínios e da Lei de Conway...

System Design - Load Balancers e Proxies Reversos

Este artigo explica de forma didática como funciona o balanceamento de carga, quais algoritmos são mais usados, e como aplicá-lo para distribuir requisições, garantir escalabilidade e evitar sobrecarga em sistemas...

System Design - Teorema CAP, ACID, BASE e Bancos de Dados Distribuídos

Neste artigo, descomplicamos o Teorema CAP, explicando como os princípios de consistência, disponibilidade e tolerância à partições afetam a arquitetura e as decisões técnicas em sistemas distribuídos modernos.

System Design - Paralelismo, Concorrência e Multithreading

Neste artigo, exploramos os conceitos de concorrência e paralelismo sob a perspectiva de System Design, discutindo suas distinções, aplicações práticas e implicações em sistemas de alta performance.

Category engineering

System Design - Observabilidade e Monitoramento

Após elaborarmos diversos tópicos como Performance, Capacidade e Escalabilidade, Métricas de Continuidade de Negócio e diversos outros assuntos relacionados, este capítulo tem o objetivo de fazer um “recap” de alguns...

System Design - Single Point of Failure, Disaster Recovery e Continuidade Operacional

Entenda o que é Single Point of Failure (SPoF) e como projetar sistemas resilientes utilizando redundância, replicação, failover automático e estratégias de Disaster Recovery. Explore também métricas essenciais de confiabilidade...

System Design - Cell-Based Architecture

Um guia profundo sobre Cell-Based Architecture e como projetar sistemas distribuídos resilientes utilizando células independentes, replicação de dados, shuffle sharding e isolamento de falhas para reduzir blast radius em larga...

System Design - Bulkhead Pattern

Entenda o Bulkhead Pattern e como ele isola falhas em sistemas distribuídos. Explore estratégias de segregação de recursos, sharding, segmentação de tenants e redução de blast radius para aumentar a...

System Design - Capacity Planning e a Teoria das Filas

Um guia aprofundado de Capacity Planning em sistemas distribuídos, explorando Teoria das Filas, Lei de Little, Knee Curve e modelagem de carga para entender limites de throughput, latência e concorrência...

System Design - Event Sourcing

Uma explicação completa e prática sobre Event Sourcing, cobrindo Event Store, Event Bus, Projections, Read Models, Snapshotting e Rehydration, além de estratégias para lidar com consistência eventual, versionamento, idempotência e...

System Design - Teorema PACELC

Entenda o Teorema PACELC e como ele expande o CAP ao explicar os trade-offs entre consistência, disponibilidade e latência em sistemas distribuídos modernos, incluindo classificações como PA/EL, PC/EL e PC/EC....

System Design - Databases, Modelos de Dados e Indexação

Neste artigo abordamos a evolução dos bancos de dados, os diferentes modelos de dados (relacional, documentos, grafos), tipos de indexação (B-Tree, Hash, LSM) e como essas escolhas afetam a performance...

System Design - Storage, RAID e Sistemas de Arquivos

Este artigo explora os principais conceitos de armazenamento em sistemas distribuídos, desde tipos como block, file e object storage até práticas como replicação, caching, consistência e estratégias para alta disponibilidade....

System Design - Backend for Frontend (BFF)

Neste artigo exploramos o padrão arquitetural Backend for Frontend (BFF), abordando sua aplicação na segregação de canais, composição de payloads, microfrontends, versionamento e resiliência em sistemas distribuídos modernos.

System Design - Padrões de Resiliência

Neste artigo, exploramos os principais padrões de resiliência em System Design, como Retry, Fallback, Circuit Breaker, Backpressure e outros, aplicados ao contexto de sistemas distribuídos tolerantes a falhas.

Blueprint - Golang SQS Consumer Performance Tunning

Este blueprint apresenta técnicas para tunar um consumer SQS em Golang, explorando uso eficiente de channels, processamento em lote, controle de concorrência e medições reais de performance.

System Design - Service Mesh

Este artigo explica o conceito de Service Mesh como padrão de comunicação em sistemas distribuídos, abordando seus componentes, modelos de implementação e benefícios como segurança, resiliência e telemetria nativa.

System Design - Estratégias de Deployment

Neste artigo, revisamos as principais estratégias de deployment como Canary, Blue-Green, Rolling Updates, Shadow Deployments e Feature Flags, explicando quando aplicá-las, seus benefícios e como contribuem para sistemas resilientes e...

System Design - Saga Pattern

Neste artigo exploramos o Saga Pattern como solução para transações distribuídas, abordando conceitos de orquestração, coreografia, compensações, consistência eventual e boas práticas em microsserviços.

Um Guia de Literatura Para Sistemas Distribuídos (e o porquê eu não quero que você o siga)

Este artigo apresenta um roteiro pessoal com os livros que mais impactaram minha jornada em sistemas distribuídos, confiabilidade e arquitetura moderna. Uma curadoria não linear, feita para quem já percorreu...

System Design - Scale Cube

O artigo explora o Scale Cube como modelo conceitual de escalabilidade, abordando os eixos X (horizontal), Y (funcional) e Z (particionamento) para guiar a evolução de sistemas distribuídos robustos e...

System Design - Testes de Carga e Estresse

Este artigo aborda os principais tipos de testes de carga aplicados a sistemas distribuídos — Load, Stress e Capacity Testing — com foco em performance, limites operacionais e preparação para...

System Design - Replicação de Dados

Neste artigo, mergulhamos nos fundamentos da replicação de dados em sistemas distribuídos, discutindo modelos como primary-replica e multi-master, estratégias como replicação síncrona e assíncrona, e padrões como CDC, Event-Carried State...

System Design - Sharding e Particionamento de Dados

Este artigo explora como aplicar sharding e particionamento em sistemas distribuídos para dividir grandes volumes de dados, escalar horizontalmente a camada de persistência e isolar falhas com mais eficiência.

System Design - CQRS (Command Query Responsability Segregation)

Este artigo explora o padrão CQRS como forma de segregar responsabilidades de leitura e escrita, ilustrando seus benefícios em cenários de sistemas distribuídos com alta concorrência e grandes volumes de...

System Design - API Gateways

Neste artigo, exploramos o conceito de API Gateway como padrão arquitetural para exposição de serviços, cobrindo funções como autenticação, roteamento, rate limiting, canary deployments e governança em ambientes distribuídos.

System Design - Mensageria, Eventos, Streaming e Arquitetura Assincrona

Neste artigo, exploramos a comunicação assíncrona em sistemas distribuídos, abordando conceitos de filas, eventos, mensageria, brokers e streamings sob o ponto de vista de System Design moderno.

System Design - Padrões de Comunicação Síncronos

Este capítulo apresenta os principais padrões de comunicação síncronos entre serviços, como REST, gRPC e GraphQL, explicando sua aplicabilidade, vantagens e desafios sob a perspectiva de System Design.

System Design - Protocolos e Comunicação de Rede

Neste artigo, mergulhamos nos protocolos fundamentais de rede, como TCP, UDP e HTTP, explicando seu papel na construção de sistemas distribuídos modernos e como impactam diretamente o desempenho e a...

System Design - Cache

Neste artigo, exploramos o papel do caching em sistemas distribuídos, detalhando estratégias e padrões arquiteturais para aumentar a eficiência, reduzir latência e otimizar o acesso a dados com alto desempenho....

System Design - Performance, Capacidade e Escalabilidade

Este artigo explora os pilares fundamentais de performance, capacidade e escalabilidade sob a ótica de System Design, trazendo definições claras, distinções práticas e implicações arquiteturais em sistemas modernos.

System Design - Microsserviços, Monolitos e Domínios

Este artigo apresenta uma análise completa sobre as arquiteturas de monólitos e microsserviços, abordando suas características, benefícios, desafios e o papel da modelagem de domínios e da Lei de Conway...

System Design - Load Balancers e Proxies Reversos

Este artigo explica de forma didática como funciona o balanceamento de carga, quais algoritmos são mais usados, e como aplicá-lo para distribuir requisições, garantir escalabilidade e evitar sobrecarga em sistemas...

System Design - Teorema CAP, ACID, BASE e Bancos de Dados Distribuídos

Neste artigo, descomplicamos o Teorema CAP, explicando como os princípios de consistência, disponibilidade e tolerância à partições afetam a arquitetura e as decisões técnicas em sistemas distribuídos modernos.

System Design - Paralelismo, Concorrência e Multithreading

Neste artigo, exploramos os conceitos de concorrência e paralelismo sob a perspectiva de System Design, discutindo suas distinções, aplicações práticas e implicações em sistemas de alta performance.

Category keda

Keda - Escalando Aplicações por Requisições HTTP em Ambientes de Alta Demanda

O Keda Autoscaler é uma das minhas tecnologias favoritas no Landscape da CNCF. Considero, sem meias palavras, divertidas as possibilidades que ele oferece para trabalhar com autoscaling.

Category containers

Keda - Escalando Aplicações por Requisições HTTP em Ambientes de Alta Demanda

O Keda Autoscaler é uma das minhas tecnologias favoritas no Landscape da CNCF. Considero, sem meias palavras, divertidas as possibilidades que ele oferece para trabalhar com autoscaling.

Category cloud-native

Keda - Escalando Aplicações por Requisições HTTP em Ambientes de Alta Demanda

O Keda Autoscaler é uma das minhas tecnologias favoritas no Landscape da CNCF. Considero, sem meias palavras, divertidas as possibilidades que ele oferece para trabalhar com autoscaling.

Category capacity

Keda - Escalando Aplicações por Requisições HTTP em Ambientes de Alta Demanda

O Keda Autoscaler é uma das minhas tecnologias favoritas no Landscape da CNCF. Considero, sem meias palavras, divertidas as possibilidades que ele oferece para trabalhar com autoscaling.

Category dicas

Keda - Escalando Aplicações por Requisições HTTP em Ambientes de Alta Demanda

O Keda Autoscaler é uma das minhas tecnologias favoritas no Landscape da CNCF. Considero, sem meias palavras, divertidas as possibilidades que ele oferece para trabalhar com autoscaling.

Category golang

Blueprint - Golang SQS Consumer Performance Tunning

Este blueprint apresenta técnicas para tunar um consumer SQS em Golang, explorando uso eficiente de channels, processamento em lote, controle de concorrência e medições reais de performance.

System Design - Paralelismo, Concorrência e Multithreading

Neste artigo, exploramos os conceitos de concorrência e paralelismo sob a perspectiva de System Design, discutindo suas distinções, aplicações práticas e implicações em sistemas de alta performance.

Category databases

System Design - Teorema CAP, ACID, BASE e Bancos de Dados Distribuídos

Neste artigo, descomplicamos o Teorema CAP, explicando como os princípios de consistência, disponibilidade e tolerância à partições afetam a arquitetura e as decisões técnicas em sistemas distribuídos modernos.

Category cloud

System Design - Single Point of Failure, Disaster Recovery e Continuidade Operacional

Entenda o que é Single Point of Failure (SPoF) e como projetar sistemas resilientes utilizando redundância, replicação, failover automático e estratégias de Disaster Recovery. Explore também métricas essenciais de confiabilidade...

System Design - Event Sourcing

Uma explicação completa e prática sobre Event Sourcing, cobrindo Event Store, Event Bus, Projections, Read Models, Snapshotting e Rehydration, além de estratégias para lidar com consistência eventual, versionamento, idempotência e...

System Design - Teorema PACELC

Entenda o Teorema PACELC e como ele expande o CAP ao explicar os trade-offs entre consistência, disponibilidade e latência em sistemas distribuídos modernos, incluindo classificações como PA/EL, PC/EL e PC/EC....

System Design - Databases, Modelos de Dados e Indexação

Neste artigo abordamos a evolução dos bancos de dados, os diferentes modelos de dados (relacional, documentos, grafos), tipos de indexação (B-Tree, Hash, LSM) e como essas escolhas afetam a performance...

System Design - Storage, RAID e Sistemas de Arquivos

Este artigo explora os principais conceitos de armazenamento em sistemas distribuídos, desde tipos como block, file e object storage até práticas como replicação, caching, consistência e estratégias para alta disponibilidade....

System Design - Backend for Frontend (BFF)

Neste artigo exploramos o padrão arquitetural Backend for Frontend (BFF), abordando sua aplicação na segregação de canais, composição de payloads, microfrontends, versionamento e resiliência em sistemas distribuídos modernos.

System Design - Padrões de Resiliência

Neste artigo, exploramos os principais padrões de resiliência em System Design, como Retry, Fallback, Circuit Breaker, Backpressure e outros, aplicados ao contexto de sistemas distribuídos tolerantes a falhas.

Blueprint - Golang SQS Consumer Performance Tunning

Este blueprint apresenta técnicas para tunar um consumer SQS em Golang, explorando uso eficiente de channels, processamento em lote, controle de concorrência e medições reais de performance.

System Design - Service Mesh

Este artigo explica o conceito de Service Mesh como padrão de comunicação em sistemas distribuídos, abordando seus componentes, modelos de implementação e benefícios como segurança, resiliência e telemetria nativa.

System Design - Estratégias de Deployment

Neste artigo, revisamos as principais estratégias de deployment como Canary, Blue-Green, Rolling Updates, Shadow Deployments e Feature Flags, explicando quando aplicá-las, seus benefícios e como contribuem para sistemas resilientes e...

System Design - Saga Pattern

Neste artigo exploramos o Saga Pattern como solução para transações distribuídas, abordando conceitos de orquestração, coreografia, compensações, consistência eventual e boas práticas em microsserviços.

Um Guia de Literatura Para Sistemas Distribuídos (e o porquê eu não quero que você o siga)

Este artigo apresenta um roteiro pessoal com os livros que mais impactaram minha jornada em sistemas distribuídos, confiabilidade e arquitetura moderna. Uma curadoria não linear, feita para quem já percorreu...

System Design - Scale Cube

O artigo explora o Scale Cube como modelo conceitual de escalabilidade, abordando os eixos X (horizontal), Y (funcional) e Z (particionamento) para guiar a evolução de sistemas distribuídos robustos e...

System Design - Testes de Carga e Estresse

Este artigo aborda os principais tipos de testes de carga aplicados a sistemas distribuídos — Load, Stress e Capacity Testing — com foco em performance, limites operacionais e preparação para...

System Design - Replicação de Dados

Neste artigo, mergulhamos nos fundamentos da replicação de dados em sistemas distribuídos, discutindo modelos como primary-replica e multi-master, estratégias como replicação síncrona e assíncrona, e padrões como CDC, Event-Carried State...

System Design - Sharding e Particionamento de Dados

Este artigo explora como aplicar sharding e particionamento em sistemas distribuídos para dividir grandes volumes de dados, escalar horizontalmente a camada de persistência e isolar falhas com mais eficiência.

System Design - CQRS (Command Query Responsability Segregation)

Este artigo explora o padrão CQRS como forma de segregar responsabilidades de leitura e escrita, ilustrando seus benefícios em cenários de sistemas distribuídos com alta concorrência e grandes volumes de...

System Design - API Gateways

Neste artigo, exploramos o conceito de API Gateway como padrão arquitetural para exposição de serviços, cobrindo funções como autenticação, roteamento, rate limiting, canary deployments e governança em ambientes distribuídos.

System Design - Mensageria, Eventos, Streaming e Arquitetura Assincrona

Neste artigo, exploramos a comunicação assíncrona em sistemas distribuídos, abordando conceitos de filas, eventos, mensageria, brokers e streamings sob o ponto de vista de System Design moderno.

System Design - Padrões de Comunicação Síncronos

Este capítulo apresenta os principais padrões de comunicação síncronos entre serviços, como REST, gRPC e GraphQL, explicando sua aplicabilidade, vantagens e desafios sob a perspectiva de System Design.

System Design - Protocolos e Comunicação de Rede

Neste artigo, mergulhamos nos protocolos fundamentais de rede, como TCP, UDP e HTTP, explicando seu papel na construção de sistemas distribuídos modernos e como impactam diretamente o desempenho e a...

System Design - Cache

Neste artigo, exploramos o papel do caching em sistemas distribuídos, detalhando estratégias e padrões arquiteturais para aumentar a eficiência, reduzir latência e otimizar o acesso a dados com alto desempenho....

System Design - Performance, Capacidade e Escalabilidade

Este artigo explora os pilares fundamentais de performance, capacidade e escalabilidade sob a ótica de System Design, trazendo definições claras, distinções práticas e implicações arquiteturais em sistemas modernos.

System Design - Microsserviços, Monolitos e Domínios

Este artigo apresenta uma análise completa sobre as arquiteturas de monólitos e microsserviços, abordando suas características, benefícios, desafios e o papel da modelagem de domínios e da Lei de Conway...

System Design - Load Balancers e Proxies Reversos

Este artigo explica de forma didática como funciona o balanceamento de carga, quais algoritmos são mais usados, e como aplicá-lo para distribuir requisições, garantir escalabilidade e evitar sobrecarga em sistemas...

Category opiniao

Teoria das Janelas Quebradas e a Engenharia de Software

Este artigo faz uma analogia entre a Teoria das Janelas Quebradas e o desenvolvimento de software, refletindo sobre como a negligência técnica e cultural pode degradar projetos, processos e times...

Category livres

Teoria das Janelas Quebradas e a Engenharia de Software

Este artigo faz uma analogia entre a Teoria das Janelas Quebradas e o desenvolvimento de software, refletindo sobre como a negligência técnica e cultural pode degradar projetos, processos e times...

Category msc

Msc. Field Notes - Shard Router

Este artigo faz parte de uma organização de um material bruto excedente da minha tese de mestrado. Tem o objetivo de compilar as referencias tecnicas e experimentações práticas.

Category load-balancing

Blueprint - Rate Limit por Pods com Istio Service Mesh

Este blueprint tem objetivo de mostrar a forma de utilizar o EnvoyFilter para implementar um rate limit local, a nível de pod, para preservar o capacity a nível proativo e...

Blueprint - Experimento de Warmup Progressivo com Istio e Argo Rollouts

O gerenciamento de tráfego sincrono durante rollouts de aplicações em Kubernetes pode oferecer algum tipo de ruido operacional e refletir na experiência dos clientes, especialmente quando lidamos com aplicações que...

Category warm-up

Blueprint - Experimento de Warmup Progressivo com Istio e Argo Rollouts

O gerenciamento de tráfego sincrono durante rollouts de aplicações em Kubernetes pode oferecer algum tipo de ruido operacional e refletir na experiência dos clientes, especialmente quando lidamos com aplicações que...

Category rollout

Blueprint - Experimento de Warmup Progressivo com Istio e Argo Rollouts

O gerenciamento de tráfego sincrono durante rollouts de aplicações em Kubernetes pode oferecer algum tipo de ruido operacional e refletir na experiência dos clientes, especialmente quando lidamos com aplicações que...