All posts

Complex ≠ complicated: a fresh take on system design

Justyna Bak
Sep 24, 2024
Complex ≠ complicated: a fresh take on system design

The one and only Kevin Hoffman, our resident polymath and author of numerous tech books including "Cloud Native Go" and "Programming WebAssembly with Rust," challenges the status quo in his latest blog post. His key insight? Large-scale distributed systems are inherently complex, but they don't have to be complicated.

Kevin illustrates this with a sharp comparison between NATS and Kubernetes:

AspectNATS (Complex)Kubernetes (Complicated)
Core DesignSelf-forming clustersIntricate orchestration
ScalabilityOrganic-growthExplicit changes and migrations
Learning curveGradualSteep
ExtensibilityComposable servivesEcosystem thriving on complexity

Drawing from his vast experience architecting systems for Fortune 500 companies and advising startups, Kevin argues for embracing simplicity in design, offering practical tips for building powerful yet maintainable systems.

Intrigued?