The whiteboard behind this article is more than just colorful notes — it’s a map of the mental models that drive clean, scalable, and maintainable software systems. Let’s break down the core ideas and keywords captured in this visual brainstorm.
🧠 Sub-Domains & Bounded Contexts
- Domain, Sub-Domain, Service
- Line of business, like Insurance, Banking, E-Commerce
- Visualized as logical boundaries for teams and services
- Inspired by Domain-Driven Design (DDD)
“Design your system around business capabilities, not technical constraints.”
🧱 Architectural Patterns
- Layered Architecture:
DAO → Service → Controller
- Module / Component view
- Common design layers:
- Project
- Layer
- Objects / Classes
- Executable packaging:
.JAR / .EXE / .ZIP
✍️ Design Patterns (GoF)
Grouped by intent:
Structural:
Facade
Decorator
Adapter
Behavioral:
Strategy
Observer
Command
Creational:
Singleton
Factory
Builder
Each of these has a purpose in object lifecycle, behavior injection, or structural abstraction.
📐 SOLID Principles
Each letter is a compass for clean design:
- S – Single Responsibility
- O – Open/Closed
- L – Liskov Substitution
- I – Interface Segregation
- D – Dependency Inversion
And don’t forget the twin brother: DRY (Don’t Repeat Yourself).
🛰️ Communication Styles
- REST, gRPC, GraphQL, WebSocket
- Pub/Sub, Push, Poll
- Emphasizes event-driven, asynchronous models in distributed systems
⚙️ Buzzwords & Practices
From delivery to deployment:
- #ShiftLeft
- #TestFirst, #ContractFirst, #DesignFirst
- #PlatformEngineering
- #ZeroTrust, #Resilience, #Observability
🎯 Hashtags as Architecture Drivers
A few standout philosophies and principles:
#CompositionOverInheritance
#LiftAndShift
#KISS
(Keep It Simple, Stupid)#DeferDecisions
#AutomationIsProductivity
#AnticorruptionLayer
#BoundedContext
#HexagonalArchitecture
These tags aren’t just trending on dev Twitter — they’re real-world practices for making software less fragile and more adaptive.
📌 TL;DR
The whiteboard outlines an entire mental toolkit for system design:
- Think in domains, not just code
- Choose patterns and principles that solve business pain points
- Architect with change in mind — using SOLID, DDD, and event-driven paradigms
- Let #buzzwords like
#DRY
,#ShiftLeft
, and#Resilience
guide practical decisions, not dogma
“Architecture is not about boxes and arrows. It’s about decisions and trade-offs.”
– Norbert Jakubczak
💬 Got questions about any of the keywords? Want a breakdown on one of the patterns or practices? Drop a comment below — let’s talk architecture.
🚀 Follow me on norbix.dev for more insights on Go, system design, and engineering wisdom.