Index
A
- abstract factory / Abstract factory
- Adapter pattern
- about / Adapter pattern, Adapter
- intent / Intent
- implementation / Implementation
- examples / Examples
- Amazon Web Services (AWS) / Monitoring patterns
- applicability and examples, chain-of-responsibility pattern
- event handlers / Applicability and examples
- log handlers / Applicability and examples
- servlets / Applicability and examples
- applicability and examples, command pattern
- undo/redo operations / Applicability and examples
- composite commands / Applicability and examples
- asynchronous method invocation / Applicability and examples
- application architecture / What is application architecture?
- application programming interfaces (API) / Request-response pattern
- applicatives / Applicatives
- aspects-oriented programming (AOP) / Layered architecture
- association
- about / Association
- aggregation / Aggregation
- asynchronous-communication pattern / Asynchronous-communication pattern
- attach method / Implementation
- attributes, reactive systems
- responsive / What is reactive programming?
- resilient / What is reactive programming?
- elastic / What is reactive programming?
- message-driven / What is reactive programming?
- autoscaling pattern / Autoscaling pattern
B
- bounded-queue pattern / Bounded-queue pattern
- Bridge pattern
- about / Bridge pattern
- intent / Intent
- implementation / Implementation
- actors / Implementation
- examples / Examples
- buffer operator / The buffer operator
- builder pattern
- about / Builder pattern, Builder
- car builder example / Car builder example
- simplified builder pattern / Simplified builder pattern
- anonymous builders, with method chaining / Anonymous builders with method chaining
- bulkhead pattern / Bulkhead pattern
C
- caching pattern / Caching pattern
- catch operator / The catch operator
- chain-of-responsibility pattern
- about / The chain-of-responsibility pattern, Chain of responsibility
- intent / Intent
- implementation / Implementation
- applicability and examples / Applicability and examples
- circuit-breaker pattern / The circuit-breaker pattern
- class diagram, chain-of-responsibility pattern
- Client / Implementation
- Handler / Implementation
- ConcreteHandler / Implementation
- class diagram, command pattern
- ConcreteCommand / Implementation
- Receiver / Implementation
- Invoker / Implementation
- Client / Implementation
- class diagram, interpreter pattern
- Context / Implementation
- AbstractExpression / Implementation
- TerminalExpression / Implementation
- NonTerminalExpression / Implementation
- class diagram, iterator pattern
- Aggregate / Implementation
- Iterator / Implementation
- ConcreteAggregate / Implementation
- ConcreteIterator / Implementation
- class diagram, mediator pattern
- Mediator / Implementation
- ConcreteMediator / Implementation
- Colleague / Implementation
- ConcreteColleague / Implementation
- class diagram, memento pattern
- originator / Implementation
- caretaker / Implementation
- memento / Implementation
- class diagram, observer pattern
- Subject / Implementation
- ConcreteSubject / Implementation
- Observer / Implementation
- class diagram, strategy pattern
- Strategy / Implementation
- ConcreteStrategy / Implementation
- Context / Implementation
- class diagram, visitor pattern
- Element / Implementation
- ConcreteElementA and ConcreteElementB / Implementation
- Visitor / Implementation
- ConcreteVisitor / Implementation
- class relations, UML
- about / Class relations
- generalization / Generalization
- realization / Realization
- dependency / Dependency
- association / Association
- closure / Closure
- Colleague interface / Implementation
- combine operator / The combine operator
- command pattern
- about / The command pattern, Command
- intent / Intent
- implementation / Implementation
- applicability and examples / Applicability and examples
- Composite pattern
- about / Composite pattern
- intent / Intent
- implementation / Implementation
- examples / Examples
- composition / Composition
- ConcreteAggregate / Implementation
- ConcreteElementA / Implementation
- ConcreteIterator / Implementation
- controller / Model View Controller architecture
- create operator / The create operator
- currying process / Currying
- λ Calculus Interpreter
- reference link / Lambda expressions
D
- debounce operator / The debounce operator
- declarative programming / Declarative programming
- Decorator pattern
- about / Decorator pattern, Decorator
- intent / Intent
- implementation / Implementation
- implementation diagram, actors / Implementation
- examples / Examples
- deep clone / Shallow clone versus deep clone
- defer operator / The defer operator
- Dependency inversion principle / Dependency inversion principle
- design patterns / Design patterns and principles
- design principles / Design patterns and principles
- detach method / Implementation
- distinct operator / The distinct operator
- Don't Repeat Yourself (DRY) / Lambda expressions
- do operator / The do operator
E
- early/eager instantiation / Early and lazy loading
- elasticity pattern
- about / Patterns for elasticity
- single responsibility pattern / Single responsibility pattern
- stateless-services pattern / Stateless-services pattern
- autoscaling pattern / Autoscaling pattern
- self-containment pattern / Self-containment pattern
- elementAt operator / The elementAt operator
- empty operator / The empty operator
- enterprise service bus (ESB) / Enterprise service bus
- error handling
- about / Error handling
- catch operator, using / The catch operator
- do operator, using / The do operator
- using operator, using / The using operator
- retry operator, using / The retry operator
- event-driven communication pattern / Event-driven communication pattern
- execute around method
- about / The execute around method
- intent / Intent
- examples / Examples
F
- factory method pattern
- about / Factory method pattern
- anonymous concrete factory / Anonymous concrete factory
- versus abstract factory / Simple factory versus factory method versus abstract factory
- factory pattern
- about / The factory pattern
- simple factory pattern / Simple factory pattern
- factory method pattern / Factory method pattern
- abstract factory / Abstract factory
- simple factory pattern, versus factory method / Simple factory versus factory method versus abstract factory
- factory method, versus abstract factory / Simple factory versus factory method versus abstract factory
- fail-fast pattern / Fail-fast pattern
- failure-handling pattern / Failure-handling pattern
- Façade pattern
- about / Façade pattern
- intent / Intent
- implementation / Implementation
- actors / Implementation
- examples / Examples
- filter operator / The filter operator
- first-class functions / First-class functions
- first/last operator / The first/last operator
- flatMap operator / The flatMap operator
- flowable / Observables, Flowables, Observers, and Subscriptions
- Flyweight pattern
- about / Flyweight pattern
- intent / Intent
- implementation / Implementation
- actors / Implementation
- examples / Examples
- from operator / The from operator
- functional design patterns
- about / Functional design patterns
- MapReduce / MapReduce
- Tail call optimization (TCO) / Tail call optimization
- memoization / Memoization
- execute around method / The execute around method
- functional programming
- about / Functional programming, Introducing functional programming
- collections, versus streams working / Working with collections versus working with streams
- lambda expression / Lambda expressions
- pure function / Pure functions
- referential transparency / Referential transparency
- first-class functions / First-class functions
- higher-order functions / Higher-order functions
- composition / Composition
- currying process / Currying
- closure / Closure
- immutability / Immutability
- functors / Functors
- applicatives / Applicatives
- monads / Monads
- functional programming, in java
- about / Introducing functional programming in Java
- lambda expressions / Lambda expressions
- streams / Streams
- stream creator operations / Stream creator operations
- stream intermediate operations / Stream intermediate operations
- stream terminal operations / Stream terminal operations
- functors / Functors
G
- Gang Of Four (GOF) patterns / Design patterns and principles
- garbage collection (GC) / Parallelization of full garbage collection
- groupBy operator / The groupBy operator
I
- idempotency pattern / Idempotency pattern
- immutability / Immutability
- imperative programming
- about / Imperative programming
- example / Real-life imperative example
- Interface Segregation Principle (ISP) / Interface Segregation Principle
- interpreter pattern
- about / The interpreter pattern, Interpreter
- intent / Intent
- implementation / Implementation
- applicability and examples / Applicability and examples
- interval operator / The interval operator
- iterator pattern
- about / The iterator pattern, Iterator
- intent / Intent
- implementation / Implementation
- applicability and examples / Applicability and examples
J
- Java
- history / A brief history of Java
- features / A brief history of Java
- supported versions / Currently supported versions of Java
- Java 5
- features / Features of Java 5
- Java 8
- features / Features of Java 8
- Java 9
- Java platform module system / Java platform module system
- JShell / JShell
- private methods, in interfaces / Private methods in interfaces
- enhancements, in streams / Enhancements in streams
- immutable collections / Creating immutable collections
- method addition, in arrays / Method addition in arrays
- additions, to Optional class / Additions to the Optional class
- new HTTP client / New HTTP client
- feature additions / Some more additions to Java 9
- Java 10
- local variable type inference / Local variable type inference
- Local variable type inference / Local variable type inference
- copyOf method for collections / copyOf method for collections
- parallelization of full garbage collection / Parallelization of full garbage collection
- feature additions / Some more additions to Java 10
- time-based release monitoring / Some more additions to Java 10
- Graal compiler / Some more additions to Java 10
- application class data sharing / Some more additions to Java 10
- Java 11
- expected features / What should be expected in Java 11?
- Java programming
- paradigms / Java programming paradigms
- Java Runtime Environment (JRE) / Conventions used, Best practices and new features of Java 9
- Java Virtual Machine (JVM) / A brief history of Java
- javax.servlet.Filter
- reference link / Applicability and examples
- join operator / The join operator
- JShell
- installation / JShell installation
- about / JShell
- JSON Web Token (JWT) / Stateless-services pattern
- Just in Time compiler (JIT) / Java – an introduction
L
- lambda expression / Lambda expressions
- layered architecture
- about / Layered architecture
- Presentation layer / Layered architecture
- Controller/web service layer / Layered architecture
- Service layer / Layered architecture
- Business layer / Layered architecture
- Data access layer / Layered architecture
- example / Layered architecture with an example
- tiers, versus layers / Tiers versus layers
- benefits / What does layered architecture guarantee?
- challenges / What are the challenges with layered architecture?
- Liskov Substitution Principle (LSP) / Liskov Substitution Principle
- List Programming (LISP) / Introducing functional programming
- load pattern
- about / Loan pattern
- intent / Intent
- examples / Examples
M
- map operator / The map operator
- MapReduce
- about / MapReduce
- intent / Intent
- examples / Examples
- load pattern / Loan pattern
- maven
- reference / Maven installation
- mediator pattern
- about / The mediator pattern, Implementation
- intent / Intent
- implementation / Implementation
- applicability and examples / Applicability and examples
- memento pattern
- about / The memento pattern
- intent / Intent
- implementation / Implementation
- applicability / Applicability
- memoization
- about / Memoization
- intent / Intent
- examples / Examples
- merge operator / The merge operator
- message-driven implementation patterns
- about / Patterns for message-driven implementation
- event-driven communication pattern / Event-driven communication pattern
- publisher-subscriber pattern / Publisher-subscriber pattern
- idempotency pattern / Idempotency pattern
- microservice architecture
- about / Microservices-based Architecture
- example / Microservice architecture with an example
- communication / Communicating among services
- benefits / What does microservices-based architecture guarantee?
- challenges / What are challenges with microservices-based architecture?
- model / Model View Controller architecture
- Model View Controller architecture
- about / Model View Controller architecture
- model / Model View Controller architecture
- view / Model View Controller architecture
- controller / Model View Controller architecture
- example / MVC architecture with an example
- contemporary MVC implementation / A more contemporary MVC implementation
- benefits / What does MVC architecture guarantee?
- challenges / What are the challenges with MVC architecture?
- monads
- monitoring patterns / Monitoring patterns
N
- null object pattern
- about / The null object pattern
- implementation / Implementation
O
- object-oriented paradigm
- about / Object-oriented paradigm
- object and classes / Objects and classes
- encapsulation / Encapsulation
- abstraction / Abstraction
- inheritance / Inheritance
- polymorphism / Polymorphism
- object pool pattern / Object pool pattern
- object relational mapping (ORM) framework / Layered architecture
- Observable, filtering
- about / Filtering Observables
- debounce operator, using / The debounce operator
- distinct operator, using / The distinct operator
- elementAt operator, using / The elementAt operator
- filter operator, using / The filter operator
- first/last operator, using / The first/last operator
- sample operator, using / The sample operator
- skip operator, using / The skip operator
- take operator, using / The take operator
- Observables
- about / Observables, Flowables, Observers, and Subscriptions
- hot / Observables, Flowables, Observers, and Subscriptions
- cold / Observables, Flowables, Observers, and Subscriptions
- creating / Creating Observables
- transforming / Transforming Observables
- filtering / Filtering Observables
- combining / Combining Observables
- Observables, combining
- combine operator, using / The combine operator
- join operator, using / The join operator
- merge operator, using / The merge operator
- zip operator, using / The zip operator
- Observables, creating
- create operator, using / The create operator
- defer operator, using / The defer operator
- empty operator, using / The empty operator
- from operator, using / The from operator
- interval operator, using / The interval operator
- timer operator, using / The timer operator
- range operator, using / The range operator
- repeat operator, using / The repeat operator
- Observables, transforming
- subscribe operator, using / The subscribe operator
- buffer operator, using / The buffer operator
- flatMap operator, using / The flatMap operator
- groupBy operator, using / The groupBy operator
- map operator, using / The map operator
- scan operator, using / The scan operator
- window operator, using / The window operator
- observer pattern
- about / The observer pattern, Observer
- intent / Intent
- implementation / Implementation
- observers / Observables, Flowables, Observers, and Subscriptions
- OOP design patterns
- reimplementing / Re-implementing OOP design patterns
- singleton / Singleton
- builder / Builder
- adapter / Adapter
- decorator / Decorator
- chain of responsibility / Chain of responsibility
- command / Command
- interpreter / Interpreter
- iterator / Iterator
- observer / Observer
- strategy / Strategy
- template method / Template method
- Open/closed principle / Open/closed principle
P
- Plain Old Java Object (POJO) / Request-response pattern
- prototype pattern
- about / Prototype pattern
- shallow clone, versus deep clone / Shallow clone versus deep clone
- Proxy pattern
- about / Proxy pattern
- remote proxy / Proxy pattern
- protection proxy / Proxy pattern
- cache proxy / Proxy pattern
- Virtual and smart proxies. / Proxy pattern
- intent / Intent
- implementation / Implementation
- examples / Examples
- publisher-subscriber pattern / Publisher-subscriber pattern
- pure function / Pure functions
Q
- quickest-reply pattern / Fan-out and quickest-reply pattern
R
- range operator / The range operator
- reactive programming / What is reactive programming?
- referential transparency / Referential transparency
- repeat operator / The repeat operator
- Representational State Transfer (REST)
- about / Request-response pattern
- versus SOAP / SOAP versus REST
- request-response pattern / Request-response pattern
- resilience patterns
- about / Patterns for resilience
- circuit-breaker pattern / The circuit-breaker pattern
- failure-handling pattern / Failure-handling pattern
- bounded-queue pattern / Bounded-queue pattern
- monitoring patterns / Monitoring patterns
- bulkhead pattern / Bulkhead pattern
- responsiveness patterns
- about / Patterns for responsiveness
- request-response pattern / Request-response pattern
- asynchronous-communication pattern / Asynchronous-communication pattern
- caching pattern / Caching pattern
- fan-out pattern / Fan-out and quickest-reply pattern
- quickest-reply pattern / Fan-out and quickest-reply pattern
- fail-fast pattern / Fail-fast pattern
- retry operator / The retry operator
- RxJava
- about / Introduction to RxJava
- example project / Example project
- RxJava framework
- installing / Installing the RxJava framework
- Maven installation / Maven installation
- JShell installation / JShell installation
S
- sample operator / The sample operator
- scan operator / The scan operator
- schedulers / Schedulers
- self-containment pattern / Self-containment pattern
- serverless architecture
- about / Serverless architecture
- example / Serverless architecture with an example
- independence, from infrastructure planning / Independence from infrastructure planning
- benefits / What does serverless architecture guarantee?
- challenges / What are the challenges with serverless architecture?
- service-oriented architecture (SOA)
- about / Service-oriented architecture
- example / Service-oriented architecture with an example
- components / Service-oriented architecture with an example
- web services / Web services
- enterprise service bus (ESB) / Enterprise service bus
- benefits / What does service-oriented architecture guarantee?
- challenges / What are the challenges with service-oriented architecture?
- shallow clone
- versus deep clone / Shallow clone versus deep clone
- simple factory pattern
- about / Simple factory pattern
- static factory / Static factory
- simple factory pattern, with registration using reflection / Simple factory with class registration using reflection
- simple factory pattern, with class registration using Product.newInstance / Simple factory with class registration using Product.newInstance
- versus factory method / Simple factory versus factory method versus abstract factory
- single responsibility pattern / Single responsibility principle, Single responsibility pattern
- singleton pattern
- about / Singleton pattern, Singleton
- synchronized singletons / Synchronized singletons
- synchronized singleton, with double-checking locking mechanism / Synchronized singleton with double-checked locking mechanism
- lock-free thread-safe singleton / Lock-free thread-safe singleton
- early loading / Early and lazy loading
- lazy loading / Early and lazy loading
- skip operator / The skip operator
- Smalltalk / Java – an introduction
- SOAP
- versus REST / SOAP versus REST
- SOLID
- single responsibility pattern / Single responsibility principle
- open/closed principle / Open/closed principle
- Liskov Substitution Principle (LSP) / Liskov Substitution Principle
- Interface Segregation Principle (ISP) / Interface Segregation Principle
- Dependency inversion principle / Dependency inversion principle
- stateless-services pattern / Stateless-services pattern
- state pattern / The state pattern
- strategy pattern
- about / The strategy pattern, Strategy
- intent / Intent
- implementation / Implementation
- stream creator operations / Stream creator operations
- stream intermediate operations / Stream intermediate operations
- streams / Streams
- stream terminal operations / Stream terminal operations
- subjects / Subjects
- subscribe operator / The subscribe operator
- subscriptions / Observables, Flowables, Observers, and Subscriptions
- synchronized singleton
- about / Synchronized singletons
- with double-checked locking mechanism / Synchronized singleton with double-checked locking mechanism
T
- Tail call optimization (TCO)
- about / Tail call optimization
- intent / Intent
- examples / Examples
- take operator / The take operator
- template method pattern
- about / The template method pattern, Template method
- intent / Intent
- implementation / Implementation
- The Reactive Manifesto
- reference / What is reactive programming?
- timer operator / The timer operator
U
- Unified Modeling Language (UML)
- about / An introduction to Unified Modeling Language
- structural diagrams / An introduction to Unified Modeling Language
- behavior diagrams / An introduction to Unified Modeling Language
- class relations / Class relations
- update / Implementation
- using operator / The using operator
V
- view / Model View Controller architecture
- visitor pattern
- about / The visitor pattern, Implementation
- intent / Intent
- implementation / Implementation
W
- window operator / The window operator
Z
- zip operator / The zip operator