Architectural

Event Driven Architecture
Intent Send and notify state changes of your objects to other applications using an Event-driven Architecture. Class diagram Applicability Use an Event-driven architecture when you want to create a loosely coupled system you want to build a more responsive system you want a system that is easier to extend Real world examples Chargify, a billing API, exposes payment activity through various events (https://docs.chargify.com/api-events) Amazon’s AWS Lambda, lets you execute code in response to events such as changes to Amazon S3 buckets, updates to an Amazon DynamoDB table, or custom events generated by your applications or devices.
Event Sourcing
Intent Instead of storing just the current state of the data in a domain, use an append-only store to record the full series of actions taken on that data. The store acts as the system of record and can be used to materialize the domain objects. This can simplify tasks in complex domains, by avoiding the need to synchronize the data model and the business domain, while improving performance, scalability, and responsiveness.
Hexagonal Architecture
Also known as Ports and Adapters Clean Architecture Onion Architecture Intent Allow an application to equally be driven by users, programs, automated test or batch scripts, and to be developed and tested in isolation from its eventual run-time devices and databases. Class diagram Applicability Use Hexagonal Architecture pattern when When the application needs to be independent of any frameworks When it is important that the application highly maintainable and fully testable Tutorials Build Maintainable Systems With Hexagonal Architecture Real world examples Apache Isis builds generic UI and REST API directly from the underlying domain objects Credits Alistair Cockburn - Hexagonal Architecture
Layers
Intent Layers is an architectural pattern where software responsibilities are divided among the different layers of the application. Explanation Real world example Consider a web site displaying decorated cakes for weddings and such. Instead of the web page directly reaching into the database, it relies on a service to deliver this information. The service then queries the data layer to assimilate the needed information. In plain words With Layers architectural pattern different concerns reside on separate layers.
Metadata Mapping
Intent Holds details of object-relational mapping in the metadata. Explanation Real world example Hibernate ORM Tool uses Metadata Mapping Pattern to specify the mapping between classes and tables either using XML or annotations in code. In plain words Metadata Mapping specifies the mapping between classes and tables so that we could treat a table of any database like a Java class. Wikipedia says Create a “virtual object database” that can be used from within the programming language.
Model-View-Controller
Intent Separate the user interface into three interconnected components: the model, the view and the controller. Let the model manage the data, the view display the data and the controller mediate updating the data and redrawing the display. Explanation Real-world example Consider ICU room in hospital which displays the patients health information on device displays which are taking input from sensors connected to patient. Here, display’s job is to display the data that it receives from the controller which in turn gets update from sensor model.
Model-View-Intent
Intent MVI is a derivation of the original MVC architectural pattern. Instead of working with a proactive controller MVI works with the reactive component called intent: it’s a component which translates user input events into model updates. Explanation MVI is a Reactive Architecture Pattern which is short for Model -View-Intent. It introduces two new concepts: the intent and the state. UI might have different states — Loading State, Fetch Data State, Error State, and user events are submitted in the form of an Intent.
Model-View-Presenter
Intent Apply a “Separation of Concerns” principle in a way that allows developers to build and test user interfaces. Explanation Real-world example Consider File selection application that allows to select a file from storage. File selection logic is completely separated from user interface implementation. In plain words It separates the UI completely from service/domain layer into Presenter. Wikipedia says Model–view–presenter (MVP) is a derivation of the model–view–controller (MVC) architectural pattern, and is used mostly for building user interfaces.
Model-View-ViewModel
Also known as Model–View–Binder Intent To apply “Separation of Concerns” to separate the logic from the UI components and allow developers to work on UI without affecting the logic and vice versa. Explanation Wikipedia says Model–view–viewmodel (MVVM) is a software architectural pattern that facilitates the separation of the development of the graphical user interface (the view) – be it via a markup language or GUI code – from the development of the business logic or back-end logic (the model) so that the view is not dependent on any specific model platform.