Index
A
- ab (Apache Bench), Introduction to Autocannon
- ad-hoc queries, Kibana, Running Ad-Hoc Queries-Running Ad-Hoc Queries
- alerting with Cabot, Alerting with Cabot-Creating a Health Check
- Alpine, Introduction to Docker
- Apache Marathon, Starting Kubernetes
- Apache Mesos, Starting Kubernetes
- API (application programming interface), Quick Node.js Overview
- API calls, Quick Node.js Overview
- APPEND Redis command, Strings
- application resilience (see resilience)
- applications
- configuration, security and, Application Configuration-Unpatched Vulnerabilities
- consumable, Deployments
- deployment rollbacks, Rolling Back Application Deployments-Rolling Back Application Deployments
- emitted errors, Exceptions, Rejections, and Emitted Errors-Exceptions, Rejections, and Emitted Errors
- exceptions, Exceptions, Rejections, and Emitted Errors-Exceptions, Rejections, and Emitted Errors
- hello-minikube, Kubectl Subcommands
- instances, scaling, Scaling Application Instances-Scaling Application Instances
- Kubernetes, Deploying an Application-Kubectl Subcommands
- multiple copies, The Single-Threaded Nature of JavaScript
- new versions, Deploying New Application Versions-Deploying New Application Versions
- rejections, Exceptions, Rejections, and Emitted Errors-Exceptions, Rejections, and Emitted Errors
- sample (see sample applications)
- speed, cluster module, Cluster Shortcomings
- artifacts, build pipeline, Deployments
- asynchronous communication, Protocols
- asynchronous events, Cluster Shortcomings
- asynchronous functions, Quick Node.js Overview, Code Example
- asynchronous operations, failed, Random Failed Async Operations-Random Failed Async Operations
- asynchronous tasks, Quick Node.js Overview
- atomicity, Redis, Seeking Atomicity-Seeking Atomicity
- attack surface, Recognizing Attack Surface-Malicious npm Packages
- Autocannon, Cluster Shortcomings, Introduction to Autocannon, Connection Pooling
- autocannon command, Cluster Shortcomings, Cluster Shortcomings
- automatic reconnection
- AWS (Amazon Web Services), Protocols
B
- back pressure, Rate Limiting and Back Pressure
- baseline, establishing, Establishing a baseline
- bash sessions, Introduction to Docker
- basic-certificate.cert, HTTPS / TLS
- basic-private-key.key, HTTPS / TLS
- benchmarking
- Bezos, Jeff, Protocols
- blocking event loops, The Single-Threaded Nature of JavaScript
- broken packages, Controlling package content
- build pipeline, Deployments
C
- C++, Quick Node.js Overview
- Cabot
- caches
- external caching, External Caching with Memcached-Introducing Memcached
- hits, Bounded In-Process Caches, Bounded In-Process Caches
- in-memory, External Caching with Memcached
- in-process, Bounded In-Process Caches-Bounded In-Process Caches
- invalidation, Bounded In-Process Caches
- lru-cache package, Bounded In-Process Caches
- misses, Bounded In-Process Caches, Bounded In-Process Caches
- no cache, External Caching with Memcached
- response caching, HTTP Semantics
- call stack, The Single-Threaded Nature of JavaScript
- callbacks, Quick Node.js Overview
- certificates
- chaos engineering, Resilience Testing
- check phase (event loops), Event Loop Phases
- child_process module, The Single-Threaded Nature of JavaScript
- CI (Continuous Integration), Deployments
- circuit breaker pattern, Circuit Breaker Pattern
- classic approach to program isolation, Containers
- client errors, HTTP, HTTP Semantics
- close phase (event loops), Event Loop Phases
- cluster module, The Single-Threaded Nature of JavaScript, The Cluster Module
- application speed, Cluster Shortcomings
- child processes, A Simple Example
- limitations, Cluster Shortcomings-Cluster Shortcomings
- listening event, Request Dispatching
- master/worker relationship, A Simple Example
- parent processes, A Simple Example
- request dispatching, Request Dispatching
- round robin routing, Cluster Shortcomings
- sticky connections, Cluster Shortcomings
- TCP/UDP level (Layer 4), Cluster Shortcomings
- clusters, Kubernetes, Kubernetes Overview, Getting Started
- code coverage enforcement, Code Coverage Enforcement-Code Coverage Enforcement
- .code property, Exceptions, Rejections, and Emitted Errors
- commands
- autocannon, Cluster Shortcomings, Cluster Shortcomings
- chaining, Introduction to Docker
- curl, Load Balancing and Health Checks, Load Balancing and Health Checks, TLS Termination, Rate Limiting and Back Pressure, Transmitting Traces from Node.js, Testing the Health Check, Composing Node.js Services
- docker history, Introduction to Docker
- docker pull, Introduction to Docker
- docker push, Pushing and Pulling to the Registry
- docker rmi, Pushing and Pulling to the Registry
- docker run, Introduction to Docker, Pushing and Pulling to the Registry
- echo, HTTP Compression
- install, Automated Testing
- kill, Request Dispatching, Signals
- kill -l, Signals
- kubectl, Kubernetes Overview
- Kubectl subcommands, Kubectl Subcommands
- Memcached, Introducing Memcached
- migrate, Applying a Migration
- netcat, Introduction to Redis
- node, Environment Variables
- npm audit, Manual Upgrades with npm CLI
- npm ci, Dependency Stage
- npm install, Service Relationship, Testing a Pull Request
- npm test, Creating a Basic Project, Testing a Pull Request, Automated Testing
- ps, Introduction to Docker
- psql, Applying a Migration
- Redis, Introduction to Redis, Generic Commands
- APPEND, Strings
- INCR, Strings
- INCRBY, Strings
- INCRBYFLOAT, Strings
- LRANGE, Lists
- PING, Introduction to Redis
- QUIT, Introduction to Redis
- RPUSH, Lists
- SADD, Sets
- SET, Strings
- SMEMBERS, Sets
- SPOP, Sets
- ZADD, Sorted Sets
- ZRANGE, Sorted Sets
- redis-cli, Introduction to Redis
- rm, Release Stage
- sysctl, Running ELK via Docker
- tape, Automated Testing
- tar, Release Stage
- taskset, Cluster Shortcomings
- time, Pushing and Pulling to the Registry
- travis encrypt, Configure Travis CI
- watch, Transmitting Logs from Node.js
- CommonJS module, Node.js Modules
- communication
- compression
- concurrency, event loops and, The Single-Threaded Nature of JavaScript
- config package, Configuration Files
- configuration files
- connect event, Automatic Reconnection
- connection pooling, Connection Pooling-Connection Pooling
- consumers
- container orchestration, Container Orchestration, Introduction to Kubernetes
- containers, Containers, Containers
- controllers, Kubernetes, Kubernetes Concepts
- CPS (Continuous-Passing Style), Quick Node.js Overview
- CPU, single instance, Cluster Shortcomings
- CRUD (Create, Read, Update, Delete), HTTP Semantics
- curl command, Load Balancing and Health Checks, Load Balancing and Health Checks, TLS Termination, Rate Limiting and Back Pressure, Transmitting Traces from Node.js, Testing the Health Check, Composing Node.js Services
- cyclical dependencies, Dependency hierarchy and deduplication
D
- data structure mutations, Data Structure Mutations-Data Structure Mutations
- database connections
- DatabaseReconnection module, Automatic Reconnection
- Date.now() function, How Does Zipkin Work?
- de-serialization, Parameter Checking and Deserialization-Parameter Checking and Deserialization
- deadlocks, The Single-Threaded Nature of JavaScript, The ID Generation Problem
- deduplication, Dependency hierarchy and deduplication-Dependency hierarchy and deduplication
- Dependabot, Automatic Upgrades with GitHub Dependabot-Automatic Upgrades with GitHub Dependabot
- dependencies
- cyclical, Dependency hierarchy and deduplication
- Docker Compose, Basic Orchestration with Docker Compose-Composing Node.js Services
- hierarchy, Dependency hierarchy and deduplication-Dependency hierarchy and deduplication
- installing, Service Relationship
- microservices and
- packages as, SemVer (Semantic Versioning)
- recipe-api, Basic Orchestration with Docker Compose
- SemVer and, SemVer (Semantic Versioning)
- upgrades, security and, Upgrading Dependencies-Upgrade Approach
- web-api service, Basic Orchestration with Docker Compose
- deployments, Deployments
- development environment, Environments
- disconnect event, Request Dispatching, Automatic Reconnection
- distnode-deploy repository, Testing a Pull Request
- distributed primitives, Distributed Primitives
- distributed request tracing, Distributed Request Tracing with Zipkin-Visualizing Microservice Dependencies
- distributed-node/ directory, Service Relationship
- Docker, Introduction to Docker-Introduction to Docker
- Cabot, Running Cabot via Docker-Running Cabot via Docker
- chaining commands, Introduction to Docker
- commands, manual execution, Introduction to Docker
- containers, Introduction to Docker, Introduction to Docker
- docker build command, From Image to Container, Rebuilding and Versioning an Image
- Docker CLI, Introduction to Docker
- docker push command, Pushing and Pulling to the Registry
- docker rmi command, Pushing and Pulling to the Registry
- docker run command, Pushing and Pulling to the Registry
- dockerd daemon, Introduction to Docker
- Dockerfile, Introduction to Docker
- .dockerignore file, Containerizing a Node.js Service
- ELK stack and, Running ELK via Docker-Running ELK via Docker
- exec subcommand, Introduction to Docker
- Grafana, Running via Docker
- Graphite, Running via Docker
- images
- Alpine, Introduction to Docker
- building images, From Image to Container
- cached, viewing, Introduction to Docker
- container instances, From Image to Container
- Debian, Introduction to Docker
- dependency stage, Dependency Stage-Dependency Stage
- filesystem shrinking, Introduction to Docker
- layers, Introduction to Docker, Rebuilding and Versioning an Image
- namespaces, Running a Docker Registry UI
- Node.js, Introduction to Docker
- rebuilding, Rebuilding and Versioning an Image-Rebuilding and Versioning an Image
- referencing, Introduction to Docker
- release stage, Release Stage-Release Stage
- repository, Introduction to Docker
- storage, Introduction to Docker
- Ubuntu, Introduction to Docker
- versioning, Rebuilding and Versioning an Image-Rebuilding and Versioning an Image
- versions, From Image to Container
- installing, Installing Docker-Linux: Convenient Install Script
- Linux and, Introduction to Docker
- Minikube, Getting Started
- ps -e command, Introduction to Docker
- ps command, Introduction to Docker
- registry, Internal Docker Registry-Internal Docker Registry
- StatsD, Running via Docker
- Swarm, Starting Kubernetes
- Zipkin, Running Zipkin via Docker
- Docker CLI, Minikube and, Getting Started
- Docker Compose, Basic Orchestration with Docker Compose-Composing Node.js Services
- Docker Desktop, Introduction to Docker
- docker history command, Introduction to Docker
- docker pull command, Introduction to Docker
- docker-compose.yml file, Composing Node.js Services
- .dockerignore file, Containerizing a Node.js Service
- DoS (denial of service) attack, Parameter Checking and Deserialization
- down() Knex function, Creating a Schema Migration
E
- echo command, HTTP Compression
- ECMAScript module, Node.js Modules
- Elasticsearch, ELK stack and, Logging with ELK
- ELB (Elastic Load Balancing), Introduction to HAProxy
- ELK stack
- empty event, SemVer (Semantic Versioning)
- encrypted environment variables, Configure Travis CI
- end event, Automatic Reconnection
- environment variables, Environments, Release Stage
- application security, Environment Variables-Environment Variables
- configuration, Service Discovery
- encrypted, Configure Travis CI
- HOST, Release Stage
- Knex and, Configuring Knex
- logging threshold, Transmitting Logs from Node.js
- Minikube, Getting Started
- NODE_ENV, Environments
- PORT, Release Stage
- Postgres instances, Building a Health Check
- recipe-api-service, Service Discovery
- ZIPKIN, Composing Node.js Services
- environments, Environments-Environments
- error event, Automatic Reconnection
- error messages, printing, Testing the Health Check
- Error object, Exceptions, Rejections, and Emitted Errors
- errors, Exceptions, Rejections, and Emitted Errors-Exceptions, Rejections, and Emitted Errors
- client versus server, HTTP Semantics
- EventEmitter class, Exceptions, Rejections, and Emitted Errors
- extracting, queries, Running Ad-Hoc Queries
- GitHub, Bounded In-Process Caches
- HTTP 500 error, Distributed Request Tracing with Zipkin
- images, Pushing and Pulling to the Registry
- promise rejections, Exceptions, Rejections, and Emitted Errors
- response caching, HTTP Semantics
- uncaught, Exceptions, Rejections, and Emitted Errors
- ERR_INVALID_URI error code, Exceptions, Rejections, and Emitted Errors
- event listeners, cluster module, Request Dispatching
- event loops, The Single-Threaded Nature of JavaScript-The Single-Threaded Nature of JavaScript
- blocking, The Single-Threaded Nature of JavaScript
- callbacks, Quick Node.js Overview, The Node.js Event Loop, Rate Limiting and Back Pressure
- fibonacci() method and, Cluster Shortcomings
- lag, Node.js Health Indicators
- libuv code, The Node.js Event Loop
- pauses, Event Loop Pauses
- phases, Event Loop Phases
- recursive, Event Loop Tips
- setImmediate() function, Event Loop Tips
- setInterval() function, Event Loop Tips
- starving, Event Loop Tips
- event-loop-phases.js file, Code Example-Code Example
- EventEmitter class, Protocol Buffers, SemVer (Semantic Versioning), Exceptions, Rejections, and Emitted Errors, Exceptions, Rejections, and Emitted Errors
- events
- argument, Exceptions, Rejections, and Emitted Errors
- asynchronous, libuv and, Cluster Shortcomings
- connect, Automatic Reconnection
- disconnect, Request Dispatching, Automatic Reconnection
- empty, SemVer (Semantic Versioning)
- end, Automatic Reconnection
- error event, Automatic Reconnection
- exit, Request Dispatching
- exit event, The Death of a Node.js Process
- full, SemVer (Semantic Versioning)
- HAProxy, Introduction to HAProxy
- number of occurrences, Other Types
- process, Exceptions, Rejections, and Emitted Errors
- ready, SemVer (Semantic Versioning)
- uncaughtException, Exceptions, Rejections, and Emitted Errors
- exceptions, Exceptions, Rejections, and Emitted Errors-Exceptions, Rejections, and Emitted Errors
- exit event, Request Dispatching, The Death of a Node.js Process
- exponential backoff, Exponential Backoff-Exponential Backoff
- EXPOSE directive, Release Stage
F
- facade services, API Facade with GraphQL
- Fastify server
- fastify-gql package, Queries and Responses, GraphQL Producer
- fibonnaci() method, Cluster Shortcomings
- forever package, Deployments
- full event, SemVer (Semantic Versioning)
- functions, The Single-Threaded Nature of JavaScript
- asynchronous, Quick Node.js Overview, Code Example
- call stack and, The Single-Threaded Nature of JavaScript
- callbacks, Quick Node.js Overview
- Date.now(), How Does Zipkin Work?
- down(), Creating a Schema Migration
- getUrl(), The ID Generation Problem
- Grafana, Creating a Grafana Dashboard
- lib.start(), Exceptions, Rejections, and Emitted Errors
- logger.send(), Exceptions, Rejections, and Emitted Errors
- parallel, The Single-Threaded Nature of JavaScript
- process.abort(), Process Exit
- process.exit(), Process Exit, Exceptions, Rejections, and Emitted Errors
- process.kill(), Signals
- process.nextTick(), Event Loop Tips
- Promise.reject(), Exceptions, Rejections, and Emitted Errors
- recursive, The Single-Threaded Nature of JavaScript
- require(), Node.js Modules-Node.js Modules
- retrySchedule(), Exponential Backoff
- serverStart(), Integration Tests
- setImmediate(), Event Loop Tips
- setInterval(), Event Loop Tips
- setTimeout(), The Single-Threaded Nature of JavaScript, The Single-Threaded Nature of JavaScript, Quick Node.js Overview, Node.js Health Indicators
- setUrl(), The ID Generation Problem
- si_recursive(), Event Loop Tips
- sleep(), Coming Up with SLOs
- stacks and, The Single-Threaded Nature of JavaScript
- synchronous, Quick Node.js Overview
- up(), Creating a Schema Migration
G
- geolocation, Redis, Introduction to Redis, Other Types
- getMetaData() method, gRPC Producer
- getUrl() function, The ID Generation Problem
- GitHub, Build Pipeline with Travis CI
- API errors, Bounded In-Process Caches
- built-in CI features, Testing a Pull Request
- Create Repository button, Build Pipeline with Travis CI
- Dependabot, Automatic Upgrades with GitHub Dependabot-Automatic Upgrades with GitHub Dependabot
- distnode-deploy repository, Testing a Pull Request
- files, pushing to master, Creating a Basic Project
- pull requests, Testing a Pull Request
- repository, creating, Build Pipeline with Travis CI
- Grafana, Metrics with Graphite, StatsD, and Grafana
- Graphite, Metrics with Graphite, StatsD, and Grafana
- GraphiteWeb, Metrics with Graphite, StatsD, and Grafana
- GraphQL, API Facade with GraphQL
- benchmarks, GraphQL benchmarks
- consumer, GraphQL Consumer-GraphQL Consumer
- Fastify server, GraphQL Producer
- JSON response, GraphQL Producer
- mutations, GraphQL Consumer
- producers, GraphQL Producer-GraphQL Producer
- queries, Queries and Responses-Queries and Responses
- query variables, GraphQL Consumer
- recipe-api service file, GraphQL Producer
- resolvers object, GraphQL Producer
- responses, Queries and Responses-Queries and Responses
- schema, GraphQL Schema
- subscription, GraphQL Consumer
- gRPC, Protocols
- gzip compression, HAProxy and, Compression
H
- HAProxy, Reverse Proxies with HAProxy, Introduction to HAProxy-Introduction to HAProxy
- alternatives, Introduction to HAProxy
- back pressure, Rate Limiting and Back Pressure
- backends ports, Introduction to HAProxy
- compression, Compression
- configuration file, Introduction to HAProxy
- events and, Introduction to HAProxy
- frontends ports, Introduction to HAProxy
- health check, Load Balancing and Health Checks-Load Balancing and Health Checks, Health Checks
- installing, Introduction to HAProxy, Installing HAProxy-macOS: Install via Homebrew
- load balancing, Load Balancing and Health Checks
- rate limiting, Rate Limiting and Back Pressure-Rate Limiting and Back Pressure
- round robin routing, Load Balancing and Health Checks
- self-signed certificates, TLS Termination
- statistics page, Load Balancing and Health Checks
- TLS termination, TLS Termination-TLS Termination, TLS termination-TLS termination
- web dashboard, Introduction to HAProxy
- web-api service, Load Balancing and Health Checks
- hash, Redis, Hash-Hash
- health check (HAProxy), Load Balancing and Health Checks-Load Balancing and Health Checks
- health checks, Health Checks
- health indicators, Node.js Health Indicators-Node.js Health Indicators
- Heroku, Deploying to Heroku
- high availability, Scaling
- Homebrew, macOS: Install via Homebrew
- HOST environment variable, Release Stage
- HTTP (Hypertext Transfer Protocol)
- client errors, HTTP Semantics
- compression, HTTP Compression-HTTP Compression, HTTP compression-HTTP compression
- hypermedia and, Request and Response with HTTP
- idempotency, HTTP Semantics
- JSON over, JSON over HTTP-JSON over HTTP
- key management, HTTPS / TLS-HTTPS / TLS
- methods, HTTP Semantics
- requests, writing manually, HTTP Payloads
- response caching, HTTP Semantics
- responses, HTTP Payloads
- retry logic, HTTP Retry Logic
- semantics, HTTP Semantics-HTTP Semantics
- server
- server errors, HTTP Semantics
- state, simulating, HTTP Semantics
- statelessness, HTTP Semantics
- status codes, HTTP Semantics
- HTTP (Layer 7), OSI model, Request and Response with HTTP
- HTTP 500 error, Distributed Request Tracing with Zipkin
- http module, HTTPS / TLS
- HTTPS (Hypertext Transfer Protocol Secure), HTTPS / TLS
- https module, HTTPS / TLS
- hypermedia, HTTP layer and, Request and Response with HTTP
I
- I/O tasks, Quick Node.js Overview
- ID generation, The ID Generation Problem-The ID Generation Problem
- idempotency, HTTP Semantics
- idempotency key, HTTP Retry Logic
- images, Docker, Introduction to Docker
- Alpine, Introduction to Docker
- building, From Image to Container
- container instances, From Image to Container
- Debian, Introduction to Docker
- dependency stage, Dependency Stage-Dependency Stage
- docker build command, From Image to Container
- errors, Pushing and Pulling to the Registry
- filesystem shrinking, Introduction to Docker
- layers, Introduction to Docker, Rebuilding and Versioning an Image
- namespaces, Running a Docker Registry UI
- referencing, Introduction to Docker
- release stage, Release Stage-Release Stage
- storage, Introduction to Docker
- versions, From Image to Container
- viewing, Introduction to Docker
- in-memory cache, External Caching with Memcached
- in-process caches, Bounded In-Process Caches-Bounded In-Process Caches
- INCR Redis command, Strings
- INCRBY Redis command, Strings
- INCRBYFLOAT Redis command, Strings
- ingress, Kubernetes, Kubernetes Concepts
- integration testing, Integration Tests-Integration Tests
- inter-service protocols, Protocols
- internal npm registry, Internal npm Registry
- ioredis module
- ioredis package, Building a Health Check, Redis Operations
- IPC (Inter-Process Communication), Protocols
J
- JavaScript
- jitter, Exponential Backoff
- JSON
- contacts.json file, Node.js Modules
- GraphQL responses, API Facade with GraphQL
- logs, Logging with ELK, Metrics with Graphite, StatsD, and Grafana
- marshalling, The Dangers of Serializing POJOs
- nested responses, Queries and Responses
- over HTTP, JSON over HTTP-JSON over HTTP
- package-lock.json file, Dependency Stage
- package.json files, Service Relationship, Dependency Stage
- strings, Transmitting Logs from Node.js
- toJSON() method, The Dangers of Serializing POJOs
- JSON.parse() method, Bounded In-Process Caches
- JSON.stringify() method, Conclusion
K
- keys
- Kibana
- kill command, Request Dispatching, Signals, Signals
- Knex, Schema Migrations with Knex
- knex package, Configuring Knex
- knexfile.js file, Configuring Knex
- Kong Gateway, Introduction to HAProxy
- KQL (Kibana Query Language), Running Ad-Hoc Queries
- Kubectl, Starting Kubernetes
- kubectl command, Kubernetes Overview
- Kubelet, Kubernetes Overview
- Kubernetes, Introduction to Kubernetes-Kubernetes Overview
- application deployment, Deploying an Application-Kubectl Subcommands
- cluster section, Getting Started
- clusters, Kubernetes Overview
- config and storage section, Getting Started
- containers, Kubernetes Overview
- controllers, Kubernetes Concepts
- deployments, Kubernetes Concepts
- discovery and load balancing, Getting Started
- Dockerfile, Service Discovery
- Horizontal Pod Autoscaler, Scaling Application Instances
- ingress resources, Kubernetes Concepts
- Kubectl, Starting Kubernetes
- labels, Kubernetes Concepts
- master, Kubernetes Overview
- Minikube
- namespace drop-down, Getting Started
- namespaces, Kubernetes Concepts
- nodes, Kubernetes Overview
- overview screen, Getting Started
- pods, Kubernetes Overview
- probes, Kubernetes Concepts
- replica sets, Kubernetes Concepts, Kubectl Configuration Files
- scheduling, Kubernetes Concepts
- selectors, Kubernetes Concepts
- service discovery, Service Discovery-Service Discovery
- services, Kubernetes Concepts, Kubectl Subcommands
- starting, Starting Kubernetes
- stateful sets, Kubernetes Concepts
- volumes, Kubernetes Overview
- workloads, Getting Started
L
- labels, Kubernetes, Kubernetes Concepts
- latency
- lib.start() function, Exceptions, Rejections, and Emitted Errors
- libraries, shared, Containers
- libuv, Quick Node.js Overview
- link shortening, The ID Generation Problem
- Linux
- lists, Redis, Lists-Lists
- live migration, Live Migrations-Live migration scenario
- load balancing
- load testing, SLA and Load Testing
- locks, The ID Generation Problem
- logger module, Exceptions, Rejections, and Emitted Errors
- logger.send() function, Exceptions, Rejections, and Emitted Errors
- logging
- Logstash, ELK stack and, Logging with ELK
- Logstash.js file, Transmitting Logs from Node.js
- loops (see event loops)
- LRANGE Redis command, Lists
- LRU (Least Recently Used), Bounded In-Process Caches
- lru-cache package, Bounded In-Process Caches
- LTS (Long-Term Support) release, Node.js LTS Schedule
- Lua scripts, Lua Scripting, Lua Scripting
M
- macOS
- malicious npm packages, Malicious npm Packages-Malicious npm Packages
- marshalling, The Dangers of Serializing POJOs
- maxConnections property, Rate Limiting and Back Pressure
- Memcached, External Caching with Memcached-Introducing Memcached
- memjs package, Caching Data with Memcached
- memory
- memory leaks, Avoiding Memory Leaks-Avoiding Memory Leaks
- message passing, The Single-Threaded Nature of JavaScript
- messaging
- methods
- asynchronous, GraphQL Producer
- getMetaData(), gRPC Producer
- HTTP, HTTP Semantics
- JSON.parse(), Bounded In-Process Caches
- JSON.stringify(), Conclusion
- postMessage( ), The Single-Threaded Nature of JavaScript
- redis.get(), Redis Operations
- ref(), Quick Node.js Overview
- toJSON(), The Dangers of Serializing POJOs
- unref(), Quick Node.js Overview
- metrics, Metrics with Graphite, StatsD, and Grafana
- microservice dependencies, visualization, Visualizing Microservice Dependencies
- microtask queues, Event Loop Phases
- migrate command, Applying a Migration
- Minikube, Starting Kubernetes
- module object, Node.js Modules
- modules, Node.js Modules-Node.js Modules
- child_process, The Single-Threaded Nature of JavaScript
- cluster, The Single-Threaded Nature of JavaScript, The Cluster Module
- CommonJS, Node.js Modules
- DatabaseReconnection, Automatic Reconnection
- ECMAScript, Node.js Modules
- http, HTTPS / TLS
- https, HTTPS / TLS
- installing, Containerizing a Node.js Service
- logger, Exceptions, Rejections, and Emitted Errors
- require cache, Node.js Modules
- versus JavaScript files, Node.js Modules
- worker_threads, The Single-Threaded Nature of JavaScript
- monitoring
- multithreading, Why Distributed?
N
- namespaces
- nconf package, Configuration Files
- netcat command, Introduction to Redis
- Nginx, Introduction to HAProxy
- node command, Environment Variables
- node-fetch package, testing and, Integration Tests
- Node.js
- nodemon package, Deployments
- NodePort service, Kubectl Configuration Files
- NODE_ENV environment variable, Environments, Configuring Knex
- node_modules/ directory, Node.js Modules, Node.js Modules, npm Packages and the npm CLI
- node_modules/ directory, versioning and, Controlling package content
- noisy neighbor, Coming Up with SLOs
- npm audit subcommand, Manual Upgrades with npm CLI, Manual Upgrades with npm CLI
- npm CLI, npm Packages and the npm CLI
- npm install commands, Service Relationship, Testing a Pull Request, Automated Testing
- npm packages
- npm registry, Internal npm Registry
- npm test command, Creating a Basic Project, Testing a Pull Request, Automated Testing
- npm testing frameworks, Automated Testing
- nyc package, Code Coverage Enforcement
O
- objects
- Error, Exceptions, Rejections, and Emitted Errors
- marshalling, The Dangers of Serializing POJOs
- module, Node.js Modules
- process, Exceptions, Rejections, and Emitted Errors
- ref() method, Quick Node.js Overview
- unref() method, Quick Node.js Overview
- OpenZipkin, Distributed Request Tracing with Zipkin
- OSI (Open Systems Interconnection) model, Protocols
P
- PaaS (Platform-as-a-Service), Travis CI, Build Pipeline with Travis CI
- package manager, Containerizing a Node.js Service
- packages
- config, Configuration Files
- deduplication, Dependency hierarchy and deduplication-Dependency hierarchy and deduplication
- dependencies
- fastify-gql, Queries and Responses, GraphQL Producer
- forever, Deployments
- ioredis, Building a Health Check, Redis Operations
- knex, Configuring Knex
- lru-cache, Bounded In-Process Caches
- memjs, Caching Data with Memcached
- nconf, Configuration Files
- node-fetch, Integration Tests
- nodemon, Deployments
- nyc, Code Coverage Enforcement-Code Coverage Enforcement
- pg, Automatic Reconnection
- publishing broken, Controlling package content
- require(), Dependency hierarchy and deduplication
- statsd-client, Transmitting Metrics from Node.js
- tape, Automated Testing
- version numbers, SemVer (Semantic Versioning)
- parallel I/O, Quick Node.js Overview
- parameter checking, Parameter Checking and Deserialization-Parameter Checking and Deserialization
- pending phase (event loops), Event Loop Phases
- pg package
- PID values, Consumer Service, Cluster Shortcomings
- PING Redis command, Introduction to Redis
- POJO (Plain Ol' JavaScript Object), The Dangers of Serializing POJOs-The Dangers of Serializing POJOs
- poll phase (event loops), Event Loop Phases
- PORT environment variable, Release Stage
- Postgres databases, Building a Health Check
- PostgreSQL
- postMessage( ) method, The Single-Threaded Nature of JavaScript
- primitives, Distributed Primitives
- probes, Kubernetes, Kubernetes Concepts
- process event, Exceptions, Rejections, and Emitted Errors
- process memory, Grafana, Node.js Health Indicators
- process object, Exceptions, Rejections, and Emitted Errors
- process termination, The Death of a Node.js Process-Process Exit
- process.abort() function, Process Exit
- process.exit() function, Process Exit, Exceptions, Rejections, and Emitted Errors
- process.kill() function, Signals
- process.nextTick() function, Event Loop Tips
- production environment, Environments, Environments
- program isolation, Containers, Containers
- promise rejections, Exceptions, Rejections, and Emitted Errors
- Promise.reject() function, Exceptions, Rejections, and Emitted Errors
- Protocol Buffers (Protobufs), Protocol Buffers-Protocol Buffers
- protocols, Protocols, Protocol Concerns
- proxies, Reverse Proxies with HAProxy
- (see also reverse proxies)
- ps command, Introduction to Docker
- psql command, Applying a Migration
- pull requests, Testing a Pull Request
R
- race conditions, The Single-Threaded Nature of JavaScript
- random crashes, Random Crashes
- rate limiting, Rate Limiting and Back Pressure-Rate Limiting and Back Pressure
- ready event, SemVer (Semantic Versioning)
- recipe-api, Service Relationship
- app label, Kubernetes Concepts
- application deployment, Kubectl Configuration Files-Kubectl Configuration Files
- as server/producer, Service Relationship
- curl command and, HTTPS / TLS
- dependencies, Basic Orchestration with Docker Compose
- Docker containers, Containerizing a Node.js Service
- get_recipe call, Visualizing a Request Tree
- GraphQL, GraphQL Producer
- health checks, Scaling Application Instances
- HTTPS and, HTTPS / TLS
- labels, Kubectl Configuration Files
- node_modules directory, Containerizing a Node.js Service
- outbound requests, Transmitting Logs from Node.js
- ports, Composing Node.js Services
- recipe-api/recipe-api-deployment.yml, Kubectl Configuration Files
- reply time, Creating a Grafana Dashboard
- req.zipkin.prepare() method, Transmitting Traces from Node.js
- requests, Request Dispatching
- response codes, Transmitting Metrics from Node.js
- source code, Producer Service
- starting, Producer Service
- Zipkin and, Composing Node.js Services
- recipe-api-1 container, From Image to Container
- recipe-api-service, Kubectl Configuration Files, Bounded In-Process Caches
- recursive functions, The Single-Threaded Nature of JavaScript
- Redis, Building a Health Check, Basic Orchestration with Docker Compose, Introduction to Redis-Introduction to Redis
- atomicity, Seeking Atomicity-Seeking Atomicity
- commands, Introduction to Redis
- APPEND, Strings
- INCR, Strings
- INCRBY, Strings
- INCRBYBLOAT, Strings
- LRANGE, Lists
- PING, Introduction to Redis
- QUIT, Introduction to Redis
- RPUSH, Lists
- SADD, Sets
- SET, Strings
- SMEMBERS, Sets
- SPOP, Sets
- ZADD, Sorted Sets
- ZRANGE, Sorted Sets
- commands, generic, Generic Commands
- geolocation, Other Types
- hash, Hash-Hash
- health check building, Building a Health Check
- Hyperlog, Other Types
- ioredis module, Building a Health Check
- keys, Redis Operations
- lists, Lists-Lists
- Lua scripts, Lua Scripting-Loading the Lua Script
- operations, Redis Operations-Redis Operations
- protocols, Introduction to Redis
- PubSub commands, Other Types
- sets, Sets-Sets
- sorted sets, Sorted Sets-Sorted Sets
- strings, Strings-Strings
- transactions, Transactions-Transactions
- redis-cli command, Introduction to Redis
- redis.get() method, Redis Operations
- ref() method, Quick Node.js Overview
- rejections, Exceptions, Rejections, and Emitted Errors-Exceptions, Rejections, and Emitted Errors
- releases, build pipeline, Deployments
- repeated keyword, Protocol Buffers
- replica sets, Kubernetes, Kubernetes Concepts
- repositories, Wrangling Repositories-Wrangling Repositories
- request dispatching, Request Dispatching
- request trees, Visualizing a Request Tree
- request_ID, Distributed Request Tracing with Zipkin
- require cache, Node.js Modules
- require() function, Node.js Modules-Node.js Modules
- resilience, Resilience
- response caching, HTTP Semantics
- responses to queries, GraphQL, Queries and Responses-Queries and Responses
- REST (Representational State Transfer), JSON over HTTP
- retrySchedule() function, Exponential Backoff
- reverse proxy, Reverse Proxies with HAProxy
- rm command, Release Stage
- rollbacks, Rolling Back Application Deployments-Rolling Back Application Deployments
- root certificate, HTTPS / TLS
- round robin routing
- route handlers, testing, Integration Tests
- RPC (Remote Procedure Call), Protocols
- RPUSH Redis command, Lists
- RUN directive, Dependency Stage
- runbooks, Alerting with Cabot
S
- SADD Redis command, Sets
- sample applications, Sample Applications
- scaling
- application instances, Scaling Application Instances-Scaling Application Instances
- Autocannon, Introduction to Autocannon
- back pressure, Rate Limiting and Back Pressure-Rate Limiting and Back Pressure
- baseline load tests, Running a Baseline Load Test, Running a Baseline Load Test
- cluster module, The Cluster Module-A Simple Example
- HAProxy and, Reverse Proxies with HAProxy-Introduction to HAProxy
- health check, Load Balancing and Health Checks-Load Balancing and Health Checks
- high availability and, Scaling
- HTTP compression, HTTP compression-HTTP compression
- load balancing, Load Balancing and Health Checks
- load testing, SLA and Load Testing-SLA and Load Testing
- protocols, Protocol Concerns-Conclusion
- rate limiting, Rate Limiting and Back Pressure, Rate Limiting and Back Pressure
- request dispatching, Request Dispatching
- reverse proxies, Reverse Proxy Concerns
- SLAs, SLA and Load Testing-SLA and Load Testing
- SLOs, Coming Up with SLOs-Coming Up with SLOs
- TLS termination, TLS termination-TLS termination
- scheduling, Kubernetes, Kubernetes Concepts, Kubernetes Concepts
- schema migration
- schema, GraphQL, GraphQL Schema
- scripting, Lua, Lua Scripting-Lua Scripting
- secrets management, Secrets Management-Secrets Management
- security
- application co nfiguration, Application Configuration-Unpatched Vulnerabilities
- attack surface, Recognizing Attack Surface-Malicious npm Packages
- configuration files, Configuration Files-Configuration Files
- dependencies upgrade, Upgrading Dependencies-Upgrade Approach
- deserialization, Parameter Checking and Deserialization-Parameter Checking and Deserialization
- DoS (denial of service) attack, Parameter Checking and Deserialization
- malicious npm packages, Malicious npm Packages-Malicious npm Packages
- parameter checking, Parameter Checking and Deserialization-Parameter Checking and Deserialization
- repositories, Wrangling Repositories-Wrangling Repositories
- secrets management, Secrets Management-Secrets Management
- vulnerabilities, Upgrading Dependencies-Manual Upgrades with npm CLI
- selectors, Kubernetes, Kubernetes Concepts
- self-signed certificates, HAProxy, TLS Termination
- SemVer (Semantic Versioning), SemVer (Semantic Versioning)
- sequential I/O, Quick Node.js Overview
- serialization, The Single-Threaded Nature of JavaScript
- server errors, HTTP, HTTP Semantics
- serverStart() function, Integration Tests
- services
- SET Redis command, Strings
- setImmediate() function, Event Loop Tips
- setInterval() functions, Event Loop Tips
- sets, Redis, Sets-Sets
- setTimeout() function, The Single-Threaded Nature of JavaScript, The Single-Threaded Nature of JavaScript, Quick Node.js Overview, Node.js Health Indicators
- setUrl() function, The ID Generation Problem
- sharding, Redis Operations
- shared libraries, Containers
- SharedArrayBuffer, The Single-Threaded Nature of JavaScript
- sharing memory, worker_threads module, The Single-Threaded Nature of JavaScript
- shebang, Producer Service
- sidecars, Introduction to Docker
- Siege, load testing, Introduction to Autocannon
- SIGHUP, Signals
- SIGINT, Signals-Signals
- SIGKILL, Signals-Signals
- signals, Signals-Signals
- Single Source of Truth, Building Stateless Services
- single-threading, The Single-Threaded Nature of JavaScript
- si_recursive() function, Event Loop Tips
- SLAs (Service Level Agreements), SLA and Load Testing
- sleep() function, Coming Up with SLOs
- SLIs (Service Level Indicators), SLA and Load Testing
- SLOs (Service Level Objectives), SLA and Load Testing
- SMEMBERS Redis command, Sets
- SNI (Server Name Indication), TLS Termination
- spinlocks, The ID Generation Problem
- SPOP Redis command, Sets
- SSL (Secure Sockets Layer), HTTPS / TLS
- stacks, functions and, The Single-Threaded Nature of JavaScript
- staging environment, Environments
- stateful sets, Kubernets, Kubernetes Concepts
- stateless services
- StatsD, Metrics with Graphite, StatsD, and Grafana
- statsd-client package, Transmitting Metrics from Node.js
- status codes, HTTP, HTTP Semantics, Process Exit
- sticky connections, cluster module, Cluster Shortcomings
- strings, Redis, Strings-Strings
- surprise interview solution, The Single-Threaded Nature of JavaScript
- synchronous communication, Protocols
- synchronous functions, Quick Node.js Overview
- sysctl command, Running ELK via Docker
T
- Tape, Automated Testing
- tape command, Automated Testing
- tape package, Automated Testing
- tar command, Release Stage
- tasks (see I/O tasks)
- taskset command, Cluster Shortcomings
- TCP (Layer 4), OSI model, Request and Response with HTTP
- Telegraf, Node.js Health Indicators
- Tene, Gil, Introduction to Autocannon
- test/ directory, Unit Tests
- testing, Automated Testing
- thread pool, libuv, Quick Node.js Overview
- throughput limitations, Scaling
- throw keyword, Exceptions, Rejections, and Emitted Errors
- throw statements, async function and, Exceptions, Rejections, and Emitted Errors
- time command, Pushing and Pulling to the Registry
- timers, Quick Node.js Overview
- timers phase (event loops), Event Loop Phases
- TLS (Transport Layer Security), HTTPS / TLS
- toJSON() method, The Dangers of Serializing POJOs
- traces, transmitting, Transmitting Traces from Node.js-Transmitting Traces from Node.js
- Traefik, Introduction to HAProxy
- transactions, Redis, Transactions-Transactions
- transmitting metrics, Transmitting Metrics from Node.js
- Travis CI
- Twilio, Create a Twilio Trial Account
U
- Ubuntu, Introduction to Docker
- uncaughtException event, Exceptions, Rejections, and Emitted Errors
- unit testing, Unit Tests-Unit Tests
- unpatched vulnerabilities, Unpatched Vulnerabilities-Unpatched Vulnerabilities
- unref() method, Quick Node.js Overview
- up() function, Creating a Schema Migration
- user-api service, Zipkin, Distributed Request Tracing with Zipkin
- user-store service, Zipkin, Distributed Request Tracing with Zipkin
- userland, Quick Node.js Overview
W
- wall clock, How Does Zipkin Work?
- watch command, Transmitting Logs from Node.js
- web-api service, Service Relationship, Service Discovery, Bounded In-Process Caches
- as client/consumer, Service Relationship
- Autocannon and, Protocol Concerns
- backend, Load Balancing and Health Checks
- bootstrapping, Composing Node.js Services
- curl command and, HTTPS / TLS, Composing Node.js Services
- dependencies, Basic Orchestration with Docker Compose
- HAProxy, Load Balancing and Health Checks
- HTTP request, HTTPS / TLS
- Kubernetes and, Service Discovery
- requests, Request Dispatching, Service Discovery
- restarting, Load Balancing and Health Checks
- round robin routing, Load Balancing and Health Checks
- web-api-ingress, Service Discovery
- web-api/Logstash.js, Transmitting Logs from Node.js
- Whisper, Metrics with Graphite, StatsD, and Grafana
- worker_threads module, The Single-Threaded Nature of JavaScript
- wrk, load testing, Introduction to Autocannon
Z
- ZADD Redis command, Sorted Sets
- Zalgo, Event Loop Tips
- Zipkin, Distributed Request Tracing with Zipkin
- client message, How Does Zipkin Work?
- Docker and, Running Zipkin via Docker
- latency, How Does Zipkin Work?
- metadata headers, How Does Zipkin Work?
- request metadata, How Does Zipkin Work?
- server message, How Does Zipkin Work?
- transmitting traces, Transmitting Traces from Node.js
- user-api service, Distributed Request Tracing with Zipkin
- user-store service, Distributed Request Tracing with Zipkin
- web UI, How Does Zipkin Work?
- ZIPKIN environment variable, Composing Node.js Services
- zipkin-lite, Transmitting Traces from Node.js
- ZRANGE Redis command, Sorted Sets