
Software engineering, explained.
A technical knowledge base for architecture, distributed systems, databases, and the ideas behind reliable software.
Search
Find concepts, patterns, and trade-offs across the knowledge base.
Featured articles
Start with ideas that show up again and again in production systems.
- Read
architecture
Modular Monolith
Design a single deployable application as well-bounded modules with clear ownership, dependencies, and a path to extract services later.
- Read
distributed systems
Consistent Hashing
Place keys on a hash ring so adding or removing nodes remaps only a small fraction of data—essential for caches, shards, and distributed stores.
- Read
architecture
Hexagonal Architecture
Isolate domain logic behind ports and adapters so infrastructure can change without rewriting business rules.
- Read
databases
Database Sharding
Split a dataset across shards with a deliberate key, routing layer, and remapping strategy so storage and write throughput can grow horizontally.
Topics
Navigate by subject. The filesystem hierarchy is the information architecture.
Data Structures and Algorithms
Foundations for efficient software.
Architecture
How systems are structured and evolve.
Distributed Systems
Coordination, consistency, and failure.
Scalability
Growing throughput without collapsing design.
Databases
Storage, concurrency, and data distribution.
.NET
Practical depth on the .NET platform.
Programming Languages
Language concepts that transfer across stacks.
Patterns
Reusable solutions with clear trade-offs.
Recently updated
Articles currently in the knowledge base.
- Event-Driven Architecture/architecture/event-driven-architecture
- Hexagonal Architecture/architecture/hexagonal-architecture
- Modular Monolith/architecture/modular-monolith
- Database Sharding/databases/database-sharding
- Pessimistic vs Optimistic Locking/databases/pessimistic-vs-optimistic-locking
- Consistent Hashing/distributed-systems/consistent-hashing
Interactive showcase
Add and remove nodes on a hash ring. Watch which keys remapped — and which stayed put.
Last change
No remapping yet
Ideal remapping ≈ 1/3 of keys when membership changes by one.
Nodes
- node-a
- node-b
- node-c
Assignments
- user:42→ node-b
- session:9→ node-b
- order:100→ node-b
- cache:home→ node-c
- img:banner→ node-c
Dive deeper in Consistent Hashing.