Decorator Pattern is a structural design pattern which is a combination of inheritance and Composition. It dynamically computes the behaviour of a particular implementation by adding behaviour/functionality to an existing object without affecting other object.
URL Shortener aka TinyURL comprises an array of worker hosts whose number can be varied as per traffic (Scalable). Used Memcache as distributed cache for low latencies.
Composite Pattern is a structural design pattern which is used when we need a tree structure to traverse across the object in hierarchical fashion.
Adapter Pattern is a structural design pattern which bridges gap between two interfaces. It is used when we write new interface (new client) which will work with legacy code keeping in mind we don't end up adding new functionality to existing functionality.
Abstract Factory Pattern is a creational design pattern which is also known as Factory of factories.
Factory Pattern is a creational design pattern which doesn't expose instantiation or creation logic and returns new instace when object is asked.
Singleton Pattern is a creational design pattern which makes sure only a single instance of that class is created and returned each time when a request for an object is made.
Builder Pattern is a creational design pattern which is used to create immutable objects with default values for attributes.
OAuth is open standard for access deligation providing client secure delegated access. Its an Authorization Standard.
JWT is a tokenization format in which we pass our credentials and content in a single format wrapped inside token.
Aerospike is a key value datastore / Distributed Hashtable/NoSQL Database, providing features of in-memory NoSQL database. It merges the concept of in memory and No SQL database.
A simple secure spring web application needs a database to be configures at its backend. This post covers step by step how to configure h2 db and access its console.