Search icon CANCEL
Subscription
0
Cart icon
Cart
Close icon
You have no products in your basket yet
Save more on your purchases!
Savings automatically calculated. No voucher code required
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
TypeScript Microservices

You're reading from  TypeScript Microservices

Product type Book
Published in May 2018
Publisher Packt
ISBN-13 9781788830751
Pages 404 pages
Edition 1st Edition
Languages
Toc

Table of Contents (17) Chapters close

Title Page
Copyright and Credits
Packt Upsell
Contributors
Preface
1. Debunking Microservices 2. Gearing up for the Journey 3. Exploring Reactive Programming 4. Beginning Your Microservice Journey 5. Understanding API Gateway 6. Service Registry and Discovery 7. Service State and Interservice Communication 8. Testing, Debugging, and Documenting 9. Deployment, Logging, and Monitoring 10. Hardening Your Application 1. Other Books You May Enjoy Index

Index

A

  • ActiveMQ / Messaging and message bus, Message-driven
  • aggregator
    • URL / Gateway aggregation and offloading
  • Akka / Message-driven
  • Amazon CloudWatch
    • URL / Centralizing and externalizing log storage 
  • Amazon Simple Queue Service / Message-driven
  • Amazon Web Services Elastic Load Balancer (ELB)
    • about / AWS Load Balancer
    • benefits / Benefits of using a load balancer
    • fault tolerance / Fault tolerance
    • high availability / High availability
    • flexibility / Flexibility
    • security / Security
    • health check parameters / Health check parameters
    • configuring / Configuring a load balancer, Autoscaling – practical hands on with AWS
    • launch configuration, creating / Creating the launch configuration
    • autoscaling group, creating / Creating an autoscaling group and configuring it with autoscaling policies
    • autoscaling group, configuring with policies / Creating an autoscaling group and configuring it with autoscaling policies
    • application, creating / Creating an application load balancer and adding a target group
    • target group, adding / Creating an application load balancer and adding a target group
    • testing / Time to test
  • Ambassador
    • URL / Revisiting testing key points
  • AMQP
    • URL / Asynchronous messaging microservice design pattern
  • anti-corruption layer (ACL) / Anti-corruption microservice design pattern
  • anti-corruption microservice design pattern / Anti-corruption microservice design pattern
  • Apache Kafka / Messaging and message bus, Message-driven
  • Apache Thrift
    • using, for gRPC / gRPC with Apache Thrift 
  • API Composition / Database per service
  • API Gateway
    • debunking / Debunking API Gateway
    • design patterns / API Gateway design patterns and aspects
    • aspects / API Gateway design patterns and aspects
    • need for / Need for gateway in our shopping cart microservices
    • design aspects / Need for gateway in our shopping cart microservices
    • versus Reverse proxy Nginx / API Gateway versus reverse proxy NGINX
    • about / API Gateway
  • API Gateway, considerations
    • dependency / Design considerations
    • database logic / Design considerations
    • business logic / Design considerations
    • orchestration / Design considerations
    • multiple content types, handling / Design considerations
    • versioning / Design considerations
    • high availability / Design considerations
  • API Gateway handles
    • concerns / Concerns API Gateway handles
    • security / Security
    • dumb gateways / Dumb gateways
    • orchestration / Transformation and orchestration
    • monitoring / Monitoring, alerting, and high availability
    • alerting / Monitoring, alerting, and high availability
    • high availability / Monitoring, alerting, and high availability
    • caching / Caching and error handling
    • error handling / Caching and error handling
    • service registry / Service registry and discovery
    • discovery / Service registry and discovery
    • circuit breakers / Circuit breakers
    • versioning / Versioning and dependency resolution
    • dependency resolution / Versioning and dependency resolution
  • application directory, configurations
    • src/data-layer / src/data-layer 
    • src/business-layer / src/business-layer
    • src/service-layer / src/service-layer
    • src/middleware / src/middleware
  • architecture design, distributed microservices
    • about / Architecture design of our system 
    • microservices / Different microservices 
    • cache microservice / Cache microservice
    • service registry / Service registry and discovery
    • discovery / Service registry and discovery
    • registrator / Registrator
    • logger / Logger 
    • gateway / Gateway
  • Async/await
    • failed requests, retrying / Retrying failed requests
    • multiple requests, in parallel / Multiple requests in parallel
  • Async Hooks
    • URL / Log levels and logging mechanisms 
  • auditing
    • via logs / Auditing via logs 
  • auditjs
    • URL / Auditjs  
  • AutoRest / Service contracts and statelessness
  • Ava / Ava
  • AWS Elastic load balancer / Server-side discovery

B

  • backend for frontend (BFFs) / Backend for frontends
  • back pressure problem / Backpressure strategy
  • Bacon.js
    • about / Bacon.js
    • features / Key takeaways
  • bit
    • URL / The problem and solution 
    • about / Getting started with bit 
  • Bottom-up Approach / Bottom-up approach
  • brokers / Message queues and brokers
  • brute force attacks
    • preventing / Preventing brute force attacks or flooding by adding rate limiters
  • build pipeline
    • deployment / Deployment
    • reference / Deciding release plan
    • dev Stage/feature branch / Deciding release plan
    • testing Stage/QA branch / Deciding release plan
    • Release Stage/Master branch / Deciding release plan
    • Released/ Tag / Deciding release plan
    • logging / Logging 
    • monitoring / Monitoring 
  • bulkhead design pattern / Bulkhead design pattern, Bulkhead and retry pattern 

C

  • cache
    • about / Cache
    • advantages / Blessing and curse of caching
    • disadvantages / Blessing and curse of caching
    • Redis / Introduction to Redis
  • caching
    • at API Gateway level / Caching and error handling
    • at service level / Caching and error handling
  • Cassandra / Netflix
  • Chai / Chai
  • circuit breaker pattern
    • about / Circuit breaker, Circuit breakers and its role, Circuit breaker pattern 
    • role / Circuit breakers and its role
  • clair scanner
    • URL / Securing container builds and standardizing deployments
  • class-validator
    • URL / src/business-layer
  • client-side discovery pattern / Client-side discovery pattern
  • client-side load balancing / Client-side load balancing or queue-based load leveling pattern 
  • client resiliency patterns
    • about / Client resiliency patterns, Client-side load balancing or queue-based load leveling pattern 
    • bulkhead pattern / Bulkhead and retry pattern 
    • retry pattern / Bulkhead and retry pattern 
    • Client-side load balancing / Client-side load balancing or queue-based load leveling pattern 
    • client resiliency patterns / Client-side load balancing or queue-based load leveling pattern 
    • circuit breaker pattern / Circuit breaker pattern 
    • fallback transaction pattern / The fallback and compensating transaction pattern
    • compensating transaction pattern / The fallback and compensating transaction pattern
  • cloud-native approach / Security best practices for containers
  • cold observable / Observable streams
  • Command Query Responsibility Segregation (CQRS)
    • about / Database per service, Benefits
    • URL / Writing your first Hello World microservice
  • commands / Commands
  • communication styles
    • about / Communication styles
    • NextGen communication styles / NextGen communication styles 
  • compilerOptions
    • URL / compilerOptions
    • about / compilerOptions
  • Config
    • URL / Configuring application properties 
  • Consul
    • about / Consul
    • server, setting up / Setting up the Consul server
    • URL / Setting up the Consul server
    • server, interacting / Talking with Consul server
    • service instance, registering / Registering a service instance
    • heartbeats, sending / Sending heartbeats and doing a health check
    • health check, performing / Sending heartbeats and doing a health check
    • application, deregistering / Deregistering an application
    • updates, subscribing / Subscribing to updates
    • features / Key points for Consul
    • benefits / If you select Consul
  • consumer-driven contracts (CDCs)
    • about / Specifying and testing the microservices contract 
    • testing / What is consumer-driven contract testing?
  • containers
    • about / Docker
    • security best practices / Security best practices for containers
  • continuous delivery / Deciding release plan
  • continuous integration (CI) / Developing some microservices for a shopping cart , Deciding release plan
  • core functionalities
    • technical capabilities / Core functionalities 
    • HTTP listeners / Core functionalities 
    • message listeners / Core functionalities 
    • API Gateway / Core functionalities 
    • data storage / Core functionalities 
    • document storage / Core functionalities 
  • core microservices implementation, components
    • load balancer / Supporting efficiencies
    • service registry / Supporting efficiencies
    • central logs / Supporting efficiencies
    • security / Supporting efficiencies
    • testing / Supporting efficiencies
  • CreditKarma
    • URL / gRPC with Apache Thrift 
  • cross-site request forgeries
    • blocking / Blocking cross-site request forgeries
  • csurf module
    • URL / Blocking cross-site request forgeries
  • currying / Currying functions
  • custom header / Versioning 101 

D

  • data
    • segregating, between microservices / How to segregate data between microservices
    • segregation rules / Postulate 1 – data ownership should be regulated via business capabilities , Postulate 2 – replicate the database for speed and robustness 
  • database selection / Schema design and database selection 
  • data formats
    • text-based message formats / Text-based message formats
    • binary message formats / Binary message formats
  • data store
    • selecting / How to choose a data store for your microservice
    • categories / How to choose a data store for your microservice
  • debugging
    • about / Debugging
    • proxy, building / Building a proxy in between to debug our microservices
    • process, profiling / Profiling process
    • heap, dumping / Dumping heap
    • CPU profiling / CPU profiling
    • Remote Debugging / Live Debugging/Remote Debugging
    • Live Debugging / Live Debugging/Remote Debugging
    • features / Key points for debugging
  • DefinitelyTyped
    • URL / Understanding types
    • types, installing / Installing types from DefinitelyTyped
  • dependencies / Dependencies
  • dependencies, sharing
    • about / Sharing dependencies
    • problem and solution / The problem and solution 
    • bit / Getting started with bit 
    • shared data, issues / The problem of shared data
  • deployment, build pipeline
    • release plan, deciding / Deciding release plan
    • options / Deployment options
    • DevOps 101 / DevOps 101
    • Docker / Docker and the world of containers 
    • containers / Docker and the world of containers 
    • WebHooks / WebHooks in our build pipeline
    • serverless architecture / Serverless architecture 
  • design aspects
    • about / Microservice design aspects, Design aspects involved
    • communication between / Communication between microservices
    • Remote Procedure Invocation (RPI) / Remote Procedure Invocation (RPI)
    • messaging / Messaging and message bus
    • message bus / Messaging and message bus
    • protobuf / Protobufs
    • service discovery / Service discovery
    • service registry, for service-service communication / Service registry for service-service communication
    • service-side discovery / Server-side discovery
    • client side discovery / Client-side discovery
    • self-registration / Registration patterns – self-registration
    • data management / Data management
    • database per service / Database per service
    • sharing concerns / Sharing concerns
    • externalized configuration / Externalized configuration
    • observability / Observability
    • log aggregation / Log aggregation
    • distributed tracing / Distributed tracing
    • microservices efficiency model / Microservice efficiency model 
    • shopping cart microservices, implementation / Implementation plan for shopping cart microservices 
  • design aspects, API Gateway
    • performance, handling / Handle performance and scalability
    • scalability / Handle performance and scalability
    • reactive programming / Reactive programming to up the odds
    • services, invoking / Invoking services
    • services, discovering / Discovering services
    • partial service failure, handling / Handling partial service failures
    • considerations / Design considerations
  • design first approach / Top-down or design-first Approach
  • design patterns
    • about / Microservice design patterns
    • asynchronous messaging / Asynchronous messaging microservice design pattern
    • backend for frontends / Backend for frontends
    • gateway aggregation / Gateway aggregation and offloading
    • offloading / Gateway aggregation and offloading
    • proxy routing / Proxy routing and throttling
    • throttling / Proxy routing and throttling
    • ambassador pattern / Ambassador and sidecar pattern
    • sidecar pattern / Ambassador and sidecar pattern
    • anti-corruption / Anti-corruption microservice design pattern
    • bulkhead design pattern / Bulkhead design pattern
    • circuit breaker / Circuit breaker
    • strangler pattern / Strangler pattern
  • DevOps 101
    • about / DevOps 101
    • containers / Containers
    • containers, versus virtual machine (VM) / Containers versus Virtual Machine (VMs)
  • distributed microservices
    • architecture design / Architecture design of our system 
  • distributed tracing
    • in Node.js / Distributed tracing in Node.js
  • Docker
    • about / Supports polyglot architecture and DevOps, Docker, Docker , Docker and the world of containers 
    • URL / Docker
    • client / Docker components
    • host / Docker components
    • registry / Docker components
    • image / Docker concepts
    • containers / Docker concepts
    • Registry / Docker concepts
    • Dockerfile / Docker concepts
    • Compose / Docker concepts
    • command reference / Docker command reference
    • setting up, with NGINX / Setting up Docker with NGINX, Node.js, and MongoDB
    • setting up, with Node.js / Setting up Docker with NGINX, Node.js, and MongoDB
    • setting up, with MongoDB / Setting up Docker with NGINX, Node.js, and MongoDB
  • documenting
    • about / Documenting
    • need for / Need of Documentation
    • Swagger 101 / Swagger 101
  • Don't Repeat Yourself (DRY) / The problem and solution 

E

  • Elastic Load Balancer (ELB) / Server-side discovery pattern
  • Elasticsearch
    • about / Supports polyglot architecture and DevOps, Tracing requests
    • URL / Setting up our environment 
  • elastic stack (ELK)
    • about / Twelve-factor application of microservices
    • URL / Centralizing and externalizing log storage 
  • environment
    • setting up / Setting up primary environment
    • VS Code / Visual Studio Code (VS Code)
    • PM2 / PM2
    • NGINX / NGINX
    • Docker / Docker
  • Eureka
    • about / Zuul and Eureka, Eureka
    • server, setting up /  Setting up the Eureka server
    • server, registering / Registering with Eureka server
    • server, discovering / Discovering with Eureka server
    • features / Key points for Eureka
    • benefits / If you select Eureka
  • Event Loop / Event Loop, Understanding Event Loop
  • events / Events 
  • evil regular expressions
    • protecting against / Protecting against evil regular expressions
  • express-ping
    • URL / Custom health module 
  • Express gateway / HTTP proxy and Express Gateway

F

  • failure handling / Versioning microservices and failure handling, When a developer's nightmare comes true 
  • functional reactive programming
    • characteristics / Introduction to reactive programming

G

  • gateway aggregation / Gateway aggregation and offloading
  • GCP's (Google Cloud Platform's) / Kubernetes concepts
  • Grafana / Prometheus and Grafana
  • gRPC
    • with Apache Thrift / gRPC with Apache Thrift 

H

  • HashiCorp Consul
    • URL / Consul
  • health check parameters, AWS Load Balancer
    • about / Health check parameters
    • unhealthy threshold / Unhealthy threshold
    • healthy threshold / Healthy threshold
    • timeout / Timeout
    • health check protocol / Health check protocol
    • health check port / Health check port
    • interval / Interval
  • Hello World microservice
    • writing / Writing your first Hello World microservice
  • helmet module
    • URL / Adding helmet to configure security headers
  • HighLand.js
    • about / HighLand.js
    • features / Key takeaways
  • hiredis
    • URL / Introduction to Redis
  • hot observable / Observable streams
  • Hoverfly
    • URL / Revisiting testing key points
  • HTTP / Microservice state 
  • http-proxy
    • URL / Building a proxy in between to debug our microservices
  • HTTP code
    • about / HTTP code 
    • URL / HTTP code 
    • 1xx (informational) / 1xx – informational 
    • 2xx (success) / 2xx – success 
    • 3xx (redirections) / 3xx – redirections 
    • 4xx (client errors) / 4xx – client errors 
    • 5xx (server errors) / 5xx – server errors 
    • benefits / Why HTTP code is vital in microservices?
  • HTTP parameter pollution
    • URL / Avoiding parameter pollution
  • HTTP Proxy / HTTP proxy and Express Gateway
  • HystrixJS
    • URL / Circuit breakers and its role

I

  • individual services
    • security best practices / Security best practices for individual services/applications
  • infrastructure role, for efficient microservice implementation
    • server layer / Infrastructure role
    • container / Infrastructure role
    • CI/CD / Infrastructure role
    • clustering / Infrastructure role
  • interservice communication
    • about / Interservice communication
    • commands / Commands
    • queries / Queries 
    • events / Events 
    • data formats, exchanging / Exchanging data formats 
  • inversify
    • URL / Dependency injection and inversion of control 
  • Inversion of control (IOC) / Inversify 
  • ioredis
    • URL / Introduction to Redis

J

  • JSON Web Token (JWT) / Security

K

  • Kestrel / Messaging and message bus
  • Kibana
    • about / Tracing requests
    • URL / Setting up our environment 
  • Kubernetes
    • about / Self-curing
    • scaling / Scaling with Kubernetes
    • used, for solving problem / What problem does Kubernetes solve?
    • concepts / Kubernetes concepts

L

  • Let's Encrypt
    • URL / Securing transmission
  • Lines of Code (LOC) / Primer to Node.js
  • load test module
    • URL / Time to test
  • Log Dashboard / Searchable logs 
  • logging, build pipeline
    • best practices / Logging best practices 
    • log storage, centralizing / Centralizing and externalizing log storage 
    • log storage, externalizing / Centralizing and externalizing log storage 
    • structured data / Structured data in logs 
    • identifiers, via correlational IDs / Identifiers via correlational IDs 
    • log levels / Log levels and logging mechanisms 
    • mechanisms / Log levels and logging mechanisms 
    • searchable logs / Searchable logs 
    • centralized custom logging solution implementation / Centralized custom logging solution implementation 
    • environment, setting up / Setting up our environment 
    • distributed tracing, in Node.js / Distributed tracing in Node.js
  • logs
    • fatal/emergency (0) / Auditing via logs 
    • alert (1) / Auditing via logs 
    • critical(2) / Auditing via logs 
    • error(3) / Auditing via logs 
    • warning(4) / Auditing via logs 
    • notice(5) / Auditing via logs 
    • info(6) / Auditing via logs 
    • debug(7) / Auditing via logs 
  • log shipper / Searchable logs 
  • Logstash
    • about / Tracing requests
    • URL / Setting up our environment 
  • Log Store / Searchable logs 
  • Log stream processor / Searchable logs 
  • lusca
    • URL / Adding helmet to configure security headers

M

  • media type versioning / Versioning 101 
  • Memcache / Cache for failover
  • message queues / Message queues and brokers
  • microservices
    • debunking / Debunking microservices
    • causes / Rise of microservices
    • languages, selection as per demand / Wide selection of languages as per demand
    • ownership, handling /
    • deployments / Frequent deployments
    • self-sustaining development units / Self-sustaining development units
    • about / What are microservices?
    • principles / Principles and characteristics
    • characteristics / Principles and characteristics, What and how to test
    • monolithic modules, avoiding / No monolithic modules
    • dumb communication pipes /
    • self-governance, decentralization / Decentralization or self-governance
    • service contracts / Service contracts and statelessness
    • statelessness / Service contracts and statelessness
    • lightweight / Lightweight
    • polyglot / Polyglot
    • advantages / Good parts of microservices
    • disadvantages / Bad and challenging parts of microservices
    • example / Microservice example
    • considerations / Key considerations while adopting microservices
    • applications / Microservices in the current world
    • versioning / Versioning microservices and failure handling
  • microservices, advantages
    • self-dependent teams / Self-dependent teams
    • services, degradation / Graceful degradation of services
    • polyglot architecture support / Supports polyglot architecture and DevOps
    • DevOps support / Supports polyglot architecture and DevOps
    • event-driven architecture / Event-driven architecture
  • microservices, considerations
    • service degradation / Service degradation
    • change governance / Proper change governance
    • heath checks / Health checks, load balancing, and efficient gateway routing
    • load balancing / Health checks, load balancing, and efficient gateway routing
    • gateway routing / Health checks, load balancing, and efficient gateway routing
    • self-curing / Self-curing
    • failover caching / Cache for failover
    • retry / Retry until
  • microservices, disadvantages
    • organization / Organization and orchestration
    • platform / Platform
    • testing / Testing
    • service discovery / Service discovery
  • Microservices 101 / Dependencies
  • microservices description / Versioning and dependency resolution
  • microservices design, best practices
    • about / Microservice design best practices
    • microservices scope, setting up / Setting up proper microservice scope 
    • self-governing function / Self-governing functions 
    • polyglot architecture / Polyglot architecture 
    • size of independent deployable component / Size of independent deployable component 
    • services, distributing / Distributing and scaling services whenever required
    • services, scaling / Distributing and scaling services whenever required
    • Agile methodology / Being Agile 
    • single business capability handler / Single business capability handler
    • shifting needs, adapting / Adapting to shifting needs
    • dependencies, handling / Handling dependencies and coupling
    • couplings, handling / Handling dependencies and coupling
    • endpoint count, determining / Deciding the number of endpoints in a microservice
    • communication styles / Communication styles between microservices
    • contract, specifying / Specifying and testing the microservices contract 
    • contract, testing / Specifying and testing the microservices contract 
    • containerizing / Number of microservices in a container 
    • data sources / Data sources and rule engine among microservices 
    • rule engine / Data sources and rule engine among microservices 
  • microservices discovery / Versioning and dependency resolution
  • microservices efficiency model
    • about / Microservice efficiency model 
    • core functionalities / Core functionalities 
    • efficiency, supporting / Supporting efficiencies
    • infrastructure role / Infrastructure role
    • governance / Governance
  • microservices gateway
    • designing, for shopping cart microservices / Designing our gateway for shopping cart microservices
    • requisites / What are we going to use?
  • microservices state / Microservice state 
  • middleware / Middleware
  • Mocha / Mocha
  • MongoDB / Supports polyglot architecture and DevOps
  • monitoring, build pipeline
    • monitoring 101 / Monitoring 101
    • challenges / Monitoring challenges
    • alerting / When to alert and when not to alert?
    • tools / Monitoring tools 
    • PM2 / PM2 and keymetrics 
    • keymetrics / PM2 and keymetrics 
    • keymetrics, monitor application exceptions / Keymetrics to monitor application exceptions and runtime problems 
    • runtime issues / Keymetrics to monitor application exceptions and runtime problems 
    • custom metrics, adding / Adding custom metrics
    • simple metrics / Simple metrics
    • counter metric h4 / Counter metric 
    • meter / Meter
    • Prometheus / Prometheus and Grafana
    • Grafana / Prometheus and Grafana

N

  • Netflix
    • about / Netflix
    • Zuul / Netflix
    • Ribbon / Netflix
    • Hystrix / Netflix
    • Eureka / Netflix
    • Turbine / Netflix
  • NetFlix Stack
    • about / Case Study – The NetFlix Stack
    • Zuul environment / Part A – Zuul and Polyglot Environment
    • Polyglot environment / Part A – Zuul and Polyglot Environment
    • Zuul load balancing / Part B – Zuul, Load balancing and failure resiliency
    • Zuul failure resilience / Part B – Zuul, Load balancing and failure resiliency
  • NextGen communication styles
    • about / NextGen communication styles 
    • HTTP/2 / HTTP/2 
    • gRPC, with Apache Thrift / gRPC with Apache Thrift 
  • NGINX
    • about / NGINX
    • URL / NGINX
  • Node.js
    • about / Primer to Node.js
    • event loop / Event Loop
    • clusters / Node.js clusters and multithreading
    • multithreading / Node.js clusters and multithreading
    • async/await / Async/await
    • streams / Streams
    • reactive programming, implementing / Being reactive in Node.js
    • Rx.js / Rx.js
    • Bacon.js / Bacon.js
    • HighLand.js / HighLand.js
  • npm module
    • URL / Dumping heap

O

  • OAuth / Security
  • observables streams
    • about / Observable streams
    • hot observables / Observable streams
    • cold observables / Observable streams
    • subjects / Observable streams
  • offloading / Gateway aggregation and offloading
  • OpenID / Security
  • operator / Operator
  • orchestration
    • about / When to react and when not to react (orchestrate), Orchestration
    • advantages / Benefits
    • disadvantages / Disadvantages
    • reactive approach / Reactive approach
    • hybrid pattern / React outside, orchestrate inside
    • reactive orchestrator / Reactive coordinator to drive the flow
    • synopsis / Synopsis, When react outside, orchestrate inside is a perfect fit, When introducing a reactive coordinator is the perfect fit

P

  • package.json / package.json 
  • platform as a service (PaaS) / Introduction to the service registry
  • PM2
    • about / PM2, PM2 process manager
    • URL / PM2, Node.js clusters and multithreading
  • postgres
    • URL / Preventing command injection/SQL injection
  • Prana
    • URL / Ambassador and sidecar pattern
  • predevelopment aspects
    • about / Microservice predevelopment aspects
    • HTTP code / HTTP code 
    • auditing, via logs / Auditing via logs 
    • PM2 process manager / PM2 process manager
    • tracing requests / Tracing requests
  • process manager / The problem of shared data
  • production-ready microservice
    • criteria / Production-ready microservice criteria
  • products microservices
    • design / Design of product microservices
  • Prometheus / Prometheus and Grafana
  • protocol buffers (protobufs) / Protobufs
  • proxy routing / Proxy routing and throttling
  • pub/sub pattern / Introduction to pub/sub pattern
  • Pull Request (PR) / Deciding release plan

Q

  • queries / Queries 

R

  • RabbitMQ / Messaging and message bus, Message-driven, RabbitMQ
  • rate limiters
    • using / Preventing brute force attacks or flooding by adding rate limiters
  • reactive / Introduction to reactive programming
  • reactive approach
    • about / Reactive approach
    • advantages / Benefits
    • disadvantages / Disadvantages
  • Reactive Manifesto
    • about / Reactive Manifesto
    • responsive systems / Responsive systems
    • resilient, to errors / Resilient to errors
    • elastic scalable / Elastic scalable
    • message-driven / Message-driven
  • reactive programming
    • about / Introduction to reactive programming
    • benefits / Why should I consider adopting reactive programming?
    • building blocks / Major building blocks and concerns
    • observable streams / Observable streams
    • subscription / Subscription
    • emit / emit and map
    • map / emit and map
    • operator / Operator
    • backpressure strategy / Backpressure strategy
    • currying functions / Currying functions
    • implementing, in Node.js / Being reactive in Node.js
  • Redis
    • about / Netflix, Introduction to Redis
    • URL / Introduction to Redis
    • used, for setting up distributed cache / Setting up our distributed caching using redis
  • Registrator
    • URL / Registrator
    • about / Registrator
    • features / Key points for Registrator
  • Remote Procedure Invocation (RPI) / Remote Procedure Invocation (RPI)
  • responsive systems / Responsive systems
  • retire.js
    • URL / Snyk.io 
  • retry pattern / Bulkhead and retry pattern 
  • Routing Controllers
    • URL / Writing your first Hello World microservice
  • routing slip / The problem of shared data
  • Rx.js
    • about / Rx.js
    • features / Key takeaways
  • Rx.Net / Rx.js
  • RxClojure / Rx.js
  • RxJava / Rx.js
  • RxJS / Rx.js
  • RxScala / Rx.js

S

  • safe-regex tool
    • URL / Protecting against evil regular expressions
  • Sagas / Database per service
  • SAML / Security
  • scalability
    • about / Scalability
    • AWS Load Balancer / AWS Load Balancer
    • with kubernetes / Scaling with Kubernetes
  • security, applying
    • considerations / Questions you should be asking while applying security, Team and operational activities
  • security best practices, containers
    • container builds, securing / Securing container builds and standardizing deployments
    • deployments, standardizing / Securing container builds and standardizing deployments
    • containers, securing at runtime / Securing containers at runtime
  • security best practices, individual services
    • known security vulnerabilities, checking / Checking for known security vulnerabilities
    • brute force attacks, preventing / Preventing brute force attacks or flooding by adding rate limiters
    • rate limiters addition, flooding / Preventing brute force attacks or flooding by adding rate limiters
    • evil regular expressions, protecting against / Protecting against evil regular expressions
    • cross-site request forgeries, blocking / Blocking cross-site request forgeries
    • session cookies, altering / Tightening session cookies and effective session management
    • session management / Tightening session cookies and effective session management
    • helmet, adding for security headers configuration / Adding helmet to configure security headers
    • parameter pollution, avoiding / Avoiding parameter pollution
    • transmission, securing / Securing transmission
    • command injection, preventing / Preventing command injection/SQL injection
    • SQL injection, preventing / Preventing command injection/SQL injection
    • TSLint / TSLint/static code analyzers
    • static code analyzers / TSLint/static code analyzers
  • security checklist
    • about / Security checklist
    • services necessities / Service necessities
    • service interactions / Service interactions
    • development phase / Development phase
    • deployment / Deployment
    • operations / Operations
  • self-curing / Self-curing
  • self-registration pattern / Self-registration pattern
  • separation of concerns (SoC) / Application directory configurations 
  • server-side discovery pattern / Server-side discovery pattern
  • serverless architecture / Serverless architecture 
  • service contract / Service contracts and statelessness
  • service degradation / Service degradation
  • service discovery patterns
    • about / Service discovery patterns
    • client-side discovery pattern / Client-side discovery pattern
    • advantages / Client-side discovery pattern
    • disadvantages / Client-side discovery pattern
    • server-side discovery pattern / Server-side discovery pattern
  • service level agreements (SLAs) / Monitoring 101
  • Service Oriented Architecture (SOA) / Orchestration
  • service registry / Introduction to the service registry
  • service registry and discovery
    • about / What, why, and how of service registry and discovery, The what of service registry and discovery
    • need for / The why of service registry and discovery
    • approaches / How service registry and discovery?
    • service registration / Service registration
    • service resolution / Service resolution
    • maintaining / Maintaining service registry
    • timely health checks / Timely health checks
    • options / Service registry and discovery options
    • Eureka / Eureka
    • consul / Consul
    • registrator / Registrator
    • selection, determining / How to choose service registry and discovery
    • Consul, benefits / If you select Consul
    • Eureka, benefits / If you select Eureka
  • service registry patterns
    • about / Service registry patterns
    • self-registration pattern / Self-registration pattern
    • third-party registration pattern / Third-party registration pattern
  • shopping cart microservices
    • overview / Overview of shopping cart microservices 
    • business process overview / Business process overview 
    • functional view / Functional view 
    • deployment view / Deployment view 
    • implementation / Implementation plan for shopping cart microservices 
    • scenarios / What to do when the scope is not clear
    • developing / Developing some microservices for a shopping cart 
    • itinerary / Itinerary 
    • development setting up / Development setup and prerequisite modules
    • prerequisite modules / Development setup and prerequisite modules
    • repository pattern / Repository pattern
    • application properties, configuring / Configuring application properties 
    • custom health module / Custom health module 
    • dependency injection / Dependency injection and inversion of control 
    • inversion of control / Dependency injection and inversion of control 
    • inversify / Inversify 
    • typedi / Typedi 
    • TypeORM / TypeORM 
    • application directory configurations / Application directory configurations 
    • configuration files / Configuration files
    • data, processing / Processing data
    • package.json / Ready to serve (package.json and Docker) 
    • docker / Docker 
    • synopsis / Synopsis
    • API Gateway, need for / Need for gateway in our shopping cart microservices
    • microservices gateway, designing / Designing our gateway for shopping cart microservices
  • signing images
    • URL / Securing container builds and standardizing deployments
  • Sinon / Sinon
  • snyk.io
    • URL / Snyk.io 
  • Software as a service (SaaS) / Twelve-factor application of microservices
  • sourcemaps / Debugging
  • Spotify / Spotify
  • Spring boot project
    • URL / Zuul and Eureka
  • SSL / Microservice state 
  • state store / The problem of shared data
  • strangler pattern / Strangler pattern
  • streams
    • about / Streams
    • readable stream / Streams
    • writable stream / Streams
    • duplex stream / Streams
    • transform stream / Streams
  • subscription / Subscription
  • Swagger
    • about / Service contracts and statelessness, Swagger 101
    • Swagger Descriptor / Swagger Editor and Descriptor
    • features / Key points for Swagger  and Descriptor
    • Swagger Editor / Swagger Editor
    • Swagger Codegen / Swagger Codegen
    • Swagger UI / Swagger UI
    • Swagger Inspector / Swagger Inspector
    • using / Possible strategies to use Swagger
    • design first approach / Top-down or design-first Approach
    • bottom-up Approach / Bottom-up approach
    • project, generating / Generating a project from a Swagger definition
  • swagger-ui-express
    • URL / Bottom-up approach
  • Swagger Codegen
    • URL / Swagger 101, Swagger Codegen
    • about / Swagger Codegen
    • advantages / Swagger Codegen
    • disadvantages / Swagger Codegen

T

  • TCP / Microservice state 
  • Telepresence
    • URL / Revisiting testing key points
  • testing
    • about / Testing
    • users / What and how to test
    • functionality check / What and how to test
    • undesired changes, preventing / What and how to test
    • runtime behavior, protection against / What and how to test
    • testing pyramid / The testing pyramid – what to test?
    • application / Hands-on testing
    • libraries / Our libraries and test tool types
    • test tool types / Our libraries and test tool types
    • Chai / Chai
    • Mocha / Mocha
    • Ava / Ava
    • Sinon / Sinon
    • Istanbul / Istanbul
    • contract tests / Contract tests using Pact.js
    • consumer-driven contract testing / What is consumer-driven contract testing?
    • pact module, utilizing / Introduction to Pact.js
    • features / Revisiting testing key points
  • testing pyramid
    • system tests (top level) / The testing pyramid – what to test?, System tests
    • service tests (middle level) / The testing pyramid – what to test?, Service tests
    • contract tests (lower level) / The testing pyramid – what to test?, Contract tests
    • unit tests (bottom level) / The testing pyramid – what to test?, Unit tests
  • third-party registration pattern
    • about / Third-party registration pattern
    • Netflix Prana / Third-party registration pattern
    • built-in components / Third-party registration pattern
    • advantages / Third-party registration pattern
    • disadvantages / Third-party registration pattern
  • throttling / Proxy routing and throttling
  • time to the first byte (TTFB) / Zalando
  • tracing requests / Tracing requests
  • tsconfig.json
    • about / Understanding tsconfig.json
    • compilerOptions / compilerOptions
    • include / include and exclude
    • exclude / include and exclude
    • extends / extends
    • URL / extends
  • TSOA
    • URL / Top-down or design-first Approach
  • twelve-factor application
    • about / Twelve-factor application of microservices
    • codebase / Twelve-factor application of microservices
    • dependencies / Twelve-factor application of microservices
    • configs / Twelve-factor application of microservices
    • services, backing / Twelve-factor application of microservices
    • build, release, and run / Twelve-factor application of microservices
    • processes / Twelve-factor application of microservices
    • port binding / Twelve-factor application of microservices
    • concurrency / Twelve-factor application of microservices
    • disposability / Twelve-factor application of microservices
    • dev/prod parity / Twelve-factor application of microservices
    • logs / Twelve-factor application of microservices
    • admin processes / Twelve-factor application of microservices
  • Typedi
    • URL / Dependency injection and inversion of control 
    • about / Typedi 
  • TypeORM
    • URL / TypeORM 
  • types
    • about / Understanding types
    • installing, from DefinitelyTyped / Installing types from DefinitelyTyped
    • writing / Writing your own types
    • dts-gen tool, using / Using the dts-gen tool
    • custom d.ts file, writing / Writing your own *.d.ts file
  • TypeScript
    • about / Primer to TypeScript
    • tsconfig.json / Understanding tsconfig.json
    • types / Understanding types
    • debugging / Debugging

U

  • URI versioning / Versioning 101 
  • UUID
    • URL / Identifiers via correlational IDs 

V

  • versioning / Versioning 101 
  • Visual Studio Code (VS Code)
    • about / Visual Studio Code (VS Code)
    • URL / Visual Studio Code (VS Code)

W

  • Walmart / Walmart
  • WebHooks
    • using, in build pipeline / WebHooks in our build pipeline
  • winston
    • URL / Writing your first Hello World microservice, src/middleware, Log levels and logging mechanisms 

Z

  • Zalando
    • about / Microservices in the current world, Zalando
    • tailor / Zalando
    • skipper / Zalando
    • shaker / Zalando
    • quilt / Zalando
    • innkeeper / Zalando
    • tesselate / Zalando
  • Zuul / Zuul and Eureka
lock icon The rest of the chapter is locked
arrow left Previous Section
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime}