Deep dive into System Design

A ultimate guide for building scalable and resilient systems

2 min read
Deep dive into System Design

Today, I am starting another series.

This time, I want to bring you valuable information that will enhance your knowledge about System Design.

This is undoubtedly the largest series I have ever created where I will be diving deep into the topics that are part of this vast ecosystem.

I'm very excited about it and hope it will be of great value to your journey as a Software Engineer, DevOps or Solutions Architect.

No more talking, let's check the content. 🚀

Introduction

  • Getting started with System Design

Architectural Patterns

  • The Monolithic Architecture
  • The Microservices Architecture
  • The Serverless Architecture
  • The Event-driven Architecture
  • The Layered Architecture

Communication

  • APIs
  • Message Queues
  • WebSockets
  • RPC
  • Pub/Sub
  • Service Mesh

Storage

  • Databases
  • Object Storage
  • Block Storage
  • File Systems
  • Caching

Compute

  • Servers
  • Containers
  • Serverless
  • FaaS
  • PasS

Security

  • Authentication
  • Authorization
  • Encryption
  • Security Protocols
  • WAF (Web Application Firewalls)
  • IDS (Intrusion Detection Systems)

Networking

  • DNS
  • Load Balancers
  • CDNs
  • Proxies
  • VPNs
  • Firewalls
  • NAT
  • Gateways
  • Routers

Scalability & Reliability

  • Horizontal Scaling
  • Vertical Scaling
  • Replication
  • Sharding
  • Redundancy
  • Fault tolerance
  • Disaster Recovery

Observability

  • Monitoring
  • Logging
  • Tracing
  • Metrics
  • APM
Vitor Britto
Buy Me A Coffee
Senior Software Engineer

Hello, I'm Vitor Britto 👋

I have almost 20 years of professional experience in Software Development, working across multiple areas including Front-end, Back-end and leadership. My journey has been shaped by continuous learning and delivering real value in complex projects (taking rough problem statements and turning them into polished products from all aspects is my speciality) with an eye for good design and expertise in all parts of the stack including the frontend, backend, databases, devops and cloud.

I am passionate about sharing knowledge and contributing to the software development community. Through this blog, I share my experiences, learnings and insights about software development, architecture and modern technologies.