- Internals and concepts
- Strong and weak sides of node.js
- Stateful and stateless servers
- Nonblocking I/O and slocking code
- Event loop: phases: π heard
- Event loop: microtasks and macrotasks
- Garbage collection: π known
- Node.js LTS schedule: π heard
- I/O-bound, CPU-bound, memory-bound tasks
- Interactive applications (close to real-time)
- Modularity, layers and dependencies
- CommonJS modules: π heard
- ECMAScript modules
- node:module
- Caching in CJS and ESM
- Modules as singletons: π known
- Contexts and scripts node:vm
- Dependencies: npm, node_modules: π known
- Dependencies: package.json and package lock: π heard
- Module-based permissions model
- Isolation with modularity
- Dependency injection
- DI containers
- Coupling and cohesion
- Framework agnostic approach
- Environment
- Command line arguments: π known
- Node.js CLI: π heard
- Process-based permissions
- Graceful shutdown
- Clustering
- Watch filesystem changes with --watch
- Internal API
- Streams API: π heard
- Web Streams API
- Crypto API
- Password hashing with node:crypto.scrypt
- Web Crypto API
- File system API: sync and async
- Copy folder recursively
- Worker threads
- Performance hooks
- Native fetch and nodejs/undici
- node:async_hooks
- AsyncLocalStorage
- AsyncResource
- Deprecated domain API
- Node.js single executable
- Stream back pressure
- SharedArrayBuffer
- node:worker_threads
- node:child_process
- MessageChannel, MessagePort
- BroadcastChannel
- Generating crypto random UUID
- node:url vs new URL: π heard
- node:assert
- Internationalization
- Blob, File, Buffer, node:buffer
- Module node:zlib
- Application structure and architecture
- Isolation between layer: π known
- Multilayer approach
- Separation of concerns
- Inversion of control
- Dependency injection
- GRASP
- SOLID
- GoF patterns
- Distributed systems
- Highload applications
- Clean architecture
- DDD
- Message Queue
- CQS
- CQRS
- Event sourcing
- Load balancing
- Serverless clouds
- FaaS clouds
- Fat controller
- GoF for Node.js
- Leaking abstractions
- Network
- IP sticky sessions
- Endpoint throttling
- HTTP(S): ποΈ used
- TCP/SSL: ποΈ used
- UDP: π known
- TLS
- Websocket: π known
- SSE: π known
- HTTP/3 (QUIC)
- Long polling: π known
- REST: π known
- RPC
- Routing
- DoS
- DDoS
- XSS
- Path traversal: π known
- CSRF
- DNS
- Fetch API
- IncomingMessage
- SQL injection
- noDelay
- keep-alive
- ALPN
- SNI callback
- SSL certificates
- Protocol agnostic approach
- Technique and tools
- Native test runner
- Logging
- Application configuring
- Testing: π known
- CI/CD
- Readable
- Writable
- Transform
- back pressure
- Buffer
- Console: π known
- Inspector
- Reliability
- Quality
- Availability
- Flexibility
- Data access
- Data access layer: π heard
- Repository: π heard
- Active record
- Query builder
- Object-Relational Mapping
- Error handling and debugging
- Error: π known
- error.cause: π known
- error.code: π known
- error.message: π known
- error.stack: π known
- How to avoid mixins
- Error.captureStackTrace
- Uncaught exceptions: π heard
- Heap dump: π known
- Debugging tools: π known
- Flame graph
- Memory leaks: π known
- Resource leaks: π known
- Data race
- Integrations and bindings
- Native addons: π heard
- C and C++ addons: π heard
- Rust addons
- Zig addons
- NAN (Native Abstractions for Node.js)
- Node-API (formerly N-API)
- NAPI C and C++
- NAPI Rust
- NAPI Zig
- Webassembly WAT
- Webassembly C and C++
- Webassembly Rust
- Webassembly Zig
- Webassembly AssemblyScript
- Shared memory
- SharedArrayBuffer
- V8 binary serialization