System design is one of the earliest decisions we can make when building a system. System design meets the needs of your business or organization through coherent and efficient systems. The OSI Model can be seen as a universal language for computer networking. It's based on the concept of splitting up a communication system
Table of contents
Why is System Design so important?VersionsTypesWhy does the OSI model matter?LayersTCPUDPTCP vs UDPHow DNS worksServer typesQuery TypesRecords TypesSubdomainsDNS ZonesDNS CachingReverse DNSExamplesBut why?Workload distributionLayersTypesRouting AlgorithmsAdvantagesRedundant load balancersFeaturesExamplesTypesConfigurationsAdvantagesLoad balancing vs ClusteringChallengesExamplesCaching and MemoryCache hit and Cache missCache InvalidationEviction policiesDistributed CacheGlobal CacheUse casesAdvantagesExamplesWhy use a CDN?How does a CDN work?TypesDisadvantagesExamplesTypesLoad balancer vs Reverse ProxyExamplesThe Nine's of availabilityAvailability in Sequence vs ParallelAvailability vs ReliabilityHigh availability vs Fault ToleranceVertical scalingHorizontal scalingRAIDVolumesFile storageBlock storageObject StorageNASHDFSWhat is a Database?What is DBMS?ComponentsTypesChallengesMaterialized viewsN+1 query problemAdvantagesDisadvantagesExamplesHigh-level differencesReasonsMaster-Slave ReplicationMaster-Master ReplicationSynchronous vs Asynchronous replicationDense IndexSparse IndexTermsNormalizationDenormalizationACIDBASEACID vs BASE Trade-offsConsistency-Availability TradeoffStatesWhy do we need distributed transactions?Two-Phase commitThree-phase commitSagasData PartitioningWhat is sharding?Partitioning criteriaAdvantagesDisadvantagesWhen to use sharding?Why do we need this?How does it workVirtual NodesData replicationAdvantagesDisadvantagesExamplesCharacteristicsAdvantagesDisadvantagesTypes of N-Tier architecturesAdvantagesDisadvantagesModelsMessage brokers vs Event streamingMessage brokers vs Enterprise Service Bus (ESB)ExamplesWorkingAdvantagesFeaturesBackpressureExamplesWorkingAdvantagesFeaturesExamplesAdvantagesDisadvantagesExamplesMonolithsModular monolithsMicroservicesBeware of the distributed monolithMicroservices vs Service Oriented Architecture (SOA)Why you don't need microservicesWhat is an event?ComponentsPatternsAdvantagesChallengesUse casesExamplesEvent sourcing vs Event-Driven Architecture (EDA)AdvantagesDisadvantagesCQRS with Event SourcingAdvantagesDisadvantagesUse casesWhy do we need an API Gateway?FeaturesAdvantagesDisadvantagesBackend For Frontend (BFF) patternExamplesWhat's an API?RESTGraphQLgRPCREST vs GraphQL vs gRPCLong pollingWebSocketsServer-Sent Events (SSE)GeohashingQuadtreesWhy do we need circuit breaking?StatesWhy do we need Rate Limiting?AlgorithmsRate Limiting in Distributed SystemsWhy do we need Service Discovery?ImplementationsService RegistryService RegistrationService meshExamplesWhy are they important?SLASLOSLIWhy is disaster recovery important?TermsStrategiesVirtual Machines (VM)ContainersVirtualization vs ContainerizationOAuth 2.0OpenID ConnectComponentsSAMLHow does SSO work?SAML vs OAuth 2.0 and OpenID Connect (OIDC)AdvantagesDisadvantagesExamplesSSLTLSmTLSRequirements clarificationsEstimation and ConstraintsData model designAPI designHigh-level component designDetailed designIdentify and resolve bottlenecksWhat is a URL Shortener?Why do we need a URL shortener?RequirementsEstimation and ConstraintsData model designAPI designHigh-level designDetailed designIdentify and resolve bottlenecksWhat is Whatsapp?RequirementsEstimation and ConstraintsData model designAPI designHigh-level designDetailed designIdentify and resolve bottlenecksWhat is Twitter?RequirementsEstimation and ConstraintsData model designAPI designHigh-level designDetailed designIdentify and resolve bottlenecksWhat is Netflix?RequirementsEstimation and ConstraintsData model designAPI designHigh-level designDetailed designIdentify and resolve bottlenecksWhat is Uber?RequirementsEstimation and ConstraintsData model designAPI designHigh-level designDetailed designIdentify and resolve bottlenecks25 Comments
Sort: