Domain-driven design Part 1 Framework-agnostic Transport-agnostic Controller as a single entry-point Error handling Minimum dependencies Part 2 Dependency injection Implement and inject logger Code isolation Prevent memory leaks Prevent mixins and global state Part 3 GRASP, SOLID, DDD, GoF, LoD for Node.js Live reload Semaphore Schema-based approach Graceful shutdown Contract validation