Skip to content
SparkTime, home

Tagged #backend

GuideTechnology

16 min read

Security in System Design: Authentication, Authorization, Encryption and Abuse Prevention

The security decisions that shape an architecture: trust boundaries and least privilege, authentication with passwords, MFA and identity providers, sessions versus tokens and JWTs, object-level authorisation, service-to-service identity, encryption in transit and at rest, secrets management, input validation and abuse prevention, SSRF, data privacy, audit logs and payment data.

GuideTechnology

14 min read

Monolith vs Modular Monolith vs Microservices: How to Choose

An honest comparison of monoliths, modular monoliths and microservices: what each gives and costs, why a modular monolith is often the best start, how to draw service boundaries and own data, synchronous versus asynchronous communication, API gateways, service discovery, service meshes, the distributed-monolith trap, and migrating with the strangler fig pattern.

GuideTechnology

17 min read

Relational Databases and Data Modeling for System Design

How to model data for a system design: tables, primary and foreign keys, constraints, one-to-many and many-to-many relationships, normalisation and deliberate denormalisation, ACID transactions, choosing id formats, and designing the model around access patterns. Also covers connection pooling, the N+1 problem and safe schema changes.

GuideTechnology

18 min read

Message Queues, Pub/Sub and Event Streams: How Asynchronous Systems Work

Why queues exist and how they work: producers, consumers and brokers, acknowledgements and redelivery, visibility timeouts, retries, dead-letter queues, ordering, and delivery guarantees. Compares work queues, pub/sub and event streams such as Kafka, and shows how to design background workers that are safe to run twice.

GuideTechnology

18 min read

Load Balancers: How They Work, Algorithms, Health Checks and Stateless Services

Why load balancers exist, how they spread traffic across servers, and what makes that possible: stateless services. Covers Layer 4 versus Layer 7, reverse proxies, round robin, weighted, least connections and hashing, health checks, draining, sticky sessions, redundancy of the load balancer itself, and autoscaling.