Design Patterns and Architectural Principles
Top > Transversal > People and Process > Design Patterns and Architectural Principles
- API Design: Links Not Keys - A comprehensive account on the use of links (rather than keys) in API payloads. See also HAL and HATEOAS. π
- API Design: REST, OpenAPI and REST comparison - Guidelines for choosing the most appropriate API type for a given project. π
- Arc42 - A template for architecture communication and documentation. π
- BFF - Backends for Frontends (BFF) is a paradigm in which each user experience channel has its own API set. This is in opposition to the traditional paradigm in which a homogenous set of APIs serves multiple channels. π
- Best practices for Unicode - Blog post explaining how Unicode works in layman terms. π
- Bitemporal History - A design pattern that suggest the use of two time records in order to capture retroactive changes to time-stamped data entries. This is useful to differentiate between "the view of the world" at a given time, versus "the effective state of affairs" at the same time, once we learn the correct facts in the future. π
- C4 - A model for visualising software architecture based on the notions of contexts, containers, components and code. π
- CAP Theorem - The CAP (Consistency, Availability, Partition Tolerance) theorem establishes that in the presence of a network partition, one has to choose between consistency and availability. π
- CRDT - A conflict-free replicated data type (CRDT) is a data structure which can be replicated across multiple computers in a network, where the replicas can be updated independently and concurrently without coordination between the replicas, and where it is always mathematically possible to resolve inconsistencies that might come up. π
- Cache-aside Pattern - Also known as lazy caching, it is a pattern in which data is retrieved from the data story only if absent in the cache, at which time the cache is populated. π
- Cattle vs Pets - A metaphor by Bill Baker, former Microsoft employee that says that servers in a scale-out system should be like cattle: "you number them and when they get sick, you shoot them" rather than pets: "You name them and when they get sick, your nurse them back to health." π
- DORA Metrics - The DevOps Research and Assessments (DORA) metrics include Deployment Frequency (DF), Mean Lead Time for changes (MLT), Mean Time to Recover (MTTR), and Change Failure Rate (CFR). π
- Design Patterns for Microservices - Collection of design patterns for microservices. π
- Doherty Threshold - The statement, attributed to IBMβs Walter Doherty, that an applicationβs response time that is below 400ms increases productivity. It has been popularised by the AMC Studioβs TV show called Halt and Catch Fire. π
- Domain-Driven Hexagon Architecture - This is an opinionated architectural model for architectures based both on the DDD and CQRS principles. It is also greatly influenced by the Clean Architecture ideas from Uncle Bob. π π
- Evolutionary Database Design - A number of techniques that allow a database design to evolve as an application develops. The techniques rely on applying continuous integration and automated refactoring to database development. π
- Expand and Contract - Also known as "Expand, Transition, or Contract", or "Parallel Change", it is a pattern for changing and modernising both applications and databases. It is particularly applicable in the latter, where migrations are traditionally manual and potentially catastrophic endeavours. π π π
- HAL - Hypertext Application Language (HAL) is an Internet Draft standard convention for defining hypermedia such as links to external resources within JSON or XML code. It is relevant in the HATEOAS paradigm. π
- HATEOAS - Hypermedia As The Engine Of Application State (HATEOAS) is a paradigm which involves sending related actions (complete URIs) along with data in REST responses. π
- IDEALS - IDEALS (Interface segregation, Deployability, Event-driven, Availability over consistency, Loose coupling, Single responsibility) is a set of design principles for microservices. π
- Local-First Software - A set of principles for software that enables both collaboration and ownership for users. Local-first ideals include the ability to work offline and collaborate across multiple devices, while also improving the security, privacy, long-term preservation, and user control of data. π
- Monolith First - Martin's Fowler's observation that almost all successful microservice stories have started with a monolith that got too big and was broken up whereas almost all the cases where a system that was built as a microservice system from scratch, it has ended up in serious trouble. π
- Observer Pattern - A software design pattern in which an object, called the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes. π
- Reversibility - An architectural principle that states that aspects of a system that are hard to change should be identified early on so that they can be made more flexible. π
- SAGA - A pattern for distributed, long-lived transactions. π
- SOLID - SINGLE (Single responsibility, Open/closed, Liskov substitution, Interface segregation, Dependency inversion) is a set of design principles for the software based on the OOP paradigm. π
- STRIDE - A threat model based on the following dimensions: Spoofing identity, Tempering with data, Repudiation, Information disclosure, Denial of Service, and Elevation of privilege. π
- Terrifically Simple JSON - Three conventions to use JSON in Web APIs in the simplest and most regular way possible. π
- The 4+1 View Model of Software Architecture - A model for describing the architecture of software-intensive systems, based on the use of multiple, concurrent views (local, process, physical, development) plus scenarios (or use cases). π
- The Twelve-Factor App - The Twelve-Factor App is a methodology for "software as a service" applications published by Heroku in 2011 which describes the best practices for software written against their platform. Many in the industry equate 12 Factor App with Cloud Native but the former is silent on many aspects intrinsic to modern cloud native architectures such as immutability, zero down-time deployments, self-healing and so on. π
- Trunk Based Development - A source-control branching model, where developers collaborate on code in a single branch called trunk. π
- Uncle Bob's Clean Architecture - Separation of concerns between enterprise business rules, application business rules, interface adapters, and frameworks. π
- Write-behind Cache Pattern - A pattern for caching in which, unlike a write-through cache, updates are not immediately propagated to the data store flushed to it asynchronously at a later time. π
Before You Leave
π€ Subscribe to my 100% spam-free newsletter!