By Patrick van Bergen


The idea behind this site is to give myself and other programmers a high-level easy-to-understand overview of common architectural patterns in software. It is meant as a source of inspiration for those who are asked to create some program and have really no idea what it should look like or where to start. I hope you enjoy it.

New version!

A new version of this website is available at

Architectural patterns

Each architecture is unique. However, some patterns are common in the history of software development. These are called architectural patterns. At least some of them will be familiar to you.

  1. Model-View-Controller
  2. Presentation-Abstraction-Control
  3. Pipe-And-Filter
  4. Layered Systems
  5. Microkernel
  6. Client-Server and N-Tier Systems
  7. Repository
  8. Blackboard
  9. Finite State Machine
  10. Process Control
  11. Multi Agent System
  12. Broker a.k.a. Service Oriented Architecture
  13. Master-Slave
  14. Interpreter a.k.a. Virtual Machine
  15. Hub-And-Spoke
  16. Message Bus a.k.a. Event Bus
  17. Structural Model
  18. Ports-And-Adapters a.k.a. Hexagonal Architecture
  19. Peer-to-peer
  20. Event sourcing
  21. CQRS