Architectural Patterns
Architectural patterns are a set of solutions that have been proven to work well for specific types of software systems. They provide a common vocabulary and set of best practices for designing and building software systems, and can help developers make better design decisions. Some common architectural patterns include:
- Model-View-Controller (MVC): A pattern for separating the user interface, business logic, and data storage components of a system.
- Microservices: A pattern for building systems as a collection of small, independently deployable services that communicate over a network.
- Event-Driven: A pattern for building systems that respond to events and perform actions in response.
- Layered: A pattern for organizing a system into layers, with each layer providing a specific set of services to the layer above it.
- Pipe-and-Filter: A pattern for building systems as a series of independent, reusable processing elements that are connected together in a pipeline.
- Command-Query Responsibility Segregation (CQRS): A pattern for separating the handling of commands (which change the state of the system) from the handling of queries (which retrieve information from the system)
- Blackboard: A pattern for creating a centralized repository of information that can be accessed and modified by multiple independent modules or subsystems.
- Microkernel: A pattern that aims to minimize the amount of code running in kernel mode and move as much functionality as possible into user-mode processes.
- Serverless: A design pattern that allows developers to build and run applications and services without having to provision and manage servers.
- Message Queues and Streams: A pattern that decouples different components of a system and enables asynchronous communication between them.
- Event Sourcing: A pattern that stores all changes to the system’s state as a sequence of events, rather than just the current state.
Learn more from the following links: