layout: pattern title: Async Method Invocation folder: async-method-invocation permalink: /patterns/async-method-invocation/ categories: Concurrency tags: – Reactive Intent Asynchronous method invocation is pattern where the calling thread is not blocked while waiting results of tasks. The pattern provides parallel processing of multiple independent tasks and retrieving the results via callbacks or waiting until everything is done. Class […]


layout: pattern title: Balking folder: balking permalink: /patterns/balking/ categories: Concurrency tags: – Decoupling Intent Balking Pattern is used to prevent an object from executing certain code if it is an incomplete or inappropriate state Class diagram Applicability Use the Balking pattern when you want to invoke an action on an object only when it is […]


layout: pattern title: Aggregator Microservices folder: aggregator-microservices permalink: /patterns/aggregator-microservices/ categories: Architectural tags: – Cloud distributed Intent The user makes a single call to the Aggregator, and the aggregator then calls each relevant microservice and collects the data, apply business logic to it, and further publish is as a REST Endpoint. More variations of the aggregator […]


layout: pattern title: Ambassador folder: ambassador permalink: /patterns/ambassador/ categories: Structural tags: – Decoupling Intent Provide a helper service instance on a client and offload common functionality away from a shared resource. Explanation Real world example A remote service has many clients accessing a function it provides. The service is a legacy application and is impossible […]


layout: pattern title: API Gateway folder: api-gateway permalink: /patterns/api-gateway/ categories: Architectural tags: Cloud distributed – Decoupling Intent Aggregate calls to microservices in a single location: the API Gateway. The user makes a single call to the API Gateway, and the API Gateway then calls each relevant microservice. Class diagram Applicability Use the API Gateway pattern […]


layout: pattern title: Acyclic Visitor folder: acyclic-visitor permalink: /patterns/acyclic-visitor/ categories: Behavioral tags: – Extensibility Intent Allow new functions to be added to existing class hierarchies without affecting those hierarchies, and without creating the troublesome dependency cycles that are inherent to the GOF VISITOR Pattern. Class diagram Applicability This pattern can be used: When you need […]


layout: pattern title: Adapter folder: adapter permalink: /patterns/adapter/ categories: Structural tags: – Gang of Four Also known as Wrapper Intent Convert the interface of a class into another interface the clients expect. Adapter lets classes work together that couldn’t otherwise because of incompatible interfaces. Explanation Real world example Consider that you have some pictures in […]


layout: pattern title: Abstract Factory folder: abstract-factory permalink: /patterns/abstract-factory/ categories: Creational tags: – Gang of Four Also known as Kit Intent Provide an interface for creating families of related or dependent objects without specifying their concrete classes. Explanation Real world example To create a kingdom we need objects with common theme. Elven kingdom needs an […]


layout: pattern title: Abstract Document folder: abstract-document permalink: /patterns/abstract-document/ categories: Structural tags: – Extensibility Intent Achieve flexibility of untyped languages and keep the type-safety Class diagram Applicability Use the Abstract Document Pattern when there is a need to add new properties on the fly you want a flexible way to organize domain in tree like […]