SWP · Archivio Vol. XXVI

A catalogue of software patterns, by language.

Definitions and per-language specimens for the recurring shapes of working software — design patterns, anti-patterns, and architectural conventions, drawn from canonical sources and from practice. Pull requests welcome on Github.

217 entries 15 languages 834 specimens
Section

anti_pattern

01 entry
  1. 030 Cargo Cult Programming
Section

architectural

31 entries
  1. 012 Anti-Corruption Layer
  2. 013 API Composition
  3. 014 API Gateway
  4. 034 Clean Architecture
  5. 035 Client-Server
  6. 036 Cluster-based Architecture
  7. 042 Config Server
  8. 046 Convention over Configuration
  9. 051 Database per Service
  10. 066 Event-Driven Architecture
  11. 069 Externalized Configuration
  12. 078 Flux
  13. 087 Health Check Endpoint
  14. 088 Hexagonal Architecture
  15. 092 Immutable Infrastructure
  16. 099 Layered Architecture
  17. 118 Microkernel
  18. 119 Microservices
  19. 122 Monolith
  20. 125 MVP
  21. 126 MVVM
  22. 127 N-Tier
  23. 131 Onion Architecture
  24. 132 Open Host Service
  25. 161 Redux
  26. 176 Self-Contained Systems
  27. 180 Service-Oriented Architecture (SOA)
  28. 185 Shared-Nothing
  29. 186 Sidecar
  30. 190 Space-Based Architecture
  31. 208 Twelve-Factor App
Section

architecture

01 entry
  1. 083 Gateway Offloading
Section

behavioral

116 entries
  1. 002 Access Token
  2. 007 Adapter Container
  3. 010 Aggregator
  4. 011 Ambassador
  5. 015 Application Controller
  6. 016 Application Service
  7. 017 Backend for Frontend
  8. 018 Balking
  9. 019 Blackboard
  10. 022 Branch by Abstraction
  11. 027 Cache Aside
  12. 028 Callback
  13. 029 Canary Release
  14. 031 Chain of Responsibility
  15. 032 Circuit Breaker
  16. 033 Class Table Inheritance
  17. 037 Command
  18. 041 Concrete Table Inheritance
  19. 043 Conformist
  20. 044 Content-Based Router
  21. 048 CQRS
  22. 049 Customer-Supplier
  23. 050 Data Mapper
  24. 052 Dead Letter Queue
  25. 056 Distributed Cache
  26. 061 DSL
  27. 062 Durable Subscriber
  28. 064 Event Sourcing
  29. 065 Event-Carried State Transfer
  30. 067 Expand-Contract
  31. 068 Extension Object
  32. 073 Fail Fast
  33. 074 Fallback
  34. 075 Feature Toggle
  35. 077 Fluent Interface
  36. 081 Front Controller
  37. 082 Future
  38. 085 Guarded Suspension
  39. 086 Half-Sync/Half-Async
  40. 089 HMVC
  41. 090 Idempotent Receiver
  42. 091 Identity Map
  43. 094 Inbox Pattern
  44. 097 Interpreter
  45. 098 Iterator
  46. 101 Lazy Load
  47. 102 Leader-Follower
  48. 105 Log Aggregation
  49. 106 Map-Reduce
  50. 107 Master-Slave
  51. 108 Materialized View
  52. 109 Mediator
  53. 110 Memento
  54. 111 Message Broker
  55. 112 Message Bus
  56. 113 Message Channel
  57. 114 Message Dispatcher
  58. 115 Message Filter
  59. 116 Message Router
  60. 124 MVC
  61. 128 Null Object
  62. 133 Outbox Pattern
  63. 134 PAC
  64. 135 Page Controller
  65. 136 Parallel Change
  66. 137 Partnership
  67. 139 Pipeline
  68. 140 Pipes and Filters
  69. 141 Plug-in
  70. 142 Point-to-Point Channel
  71. 143 Policy
  72. 144 Presentation Model
  73. 145 Proactor
  74. 146 Process Manager
  75. 148 Projection
  76. 149 Promise
  77. 152 Publish-Subscribe
  78. 153 Publish-Subscribe Channel
  79. 154 Published Language
  80. 155 Query Object
  81. 156 Rate Limiting
  82. 157 Reactor
  83. 159 Read-Through Cache
  84. 164 Request-Reply
  85. 165 Resequencer
  86. 166 Retry with Backoff
  87. 168 Rolling Deployment
  88. 169 Routing Slip
  89. 172 Saga (Choreography)
  90. 174 Scheduler
  91. 175 Scheduler-Agent-Supervisor
  92. 177 Service Discovery
  93. 178 Service Locator
  94. 181 Shadow Deployment
  95. 183 Shared Database
  96. 187 Single Table Inheritance
  97. 189 Snapshot
  98. 191 Specification
  99. 192 Splitter
  100. 193 State
  101. 194 Store-and-Forward
  102. 195 Strangler Fig
  103. 196 Strategy
  104. 197 Strategy Registry
  105. 198 Supervising Presenter
  106. 199 Supervisor-Worker
  107. 203 Template View
  108. 205 Timeout
  109. 206 Transactional Consumer
  110. 207 Transactional Outbox
  111. 210 Unit of Work
  112. 212 View Helper
  113. 213 View Store
  114. 214 Visitor
  115. 216 Write-Behind Cache
  116. 217 Write-Through Cache
Section

cloud

01 entry
  1. 096 Init Container
Section

concurrency

11 entries
  1. 003 Active Object
  2. 005 Actor Model
  3. 038 Competing Consumers
  4. 060 Double-Checked Locking
  5. 080 Fork-Join
  6. 121 Monitor Object
  7. 147 Producer-Consumer
  8. 160 Read-Write Lock
  9. 201 Task Farm
  10. 204 Thread Pool
  11. 215 Worker Thread
Section

concurrent

01 entry
  1. 076 Fire-and-Forget
Section

CQRS

01 entry
  1. 158 Read Model
Section

creational

15 entries
  1. 001 Abstract Factory
  2. 004 Active Record
  3. 024 Builder
  4. 055 Dependency Injection
  5. 070 Facade
  6. 071 Factory (Domain)
  7. 072 Factory Method
  8. 079 Flyweight
  9. 093 Immutable Object
  10. 100 Lazy Initialization
  11. 123 Multiton
  12. 129 Object Pool
  13. 150 Prototype
  14. 170 Row Data Gateway
  15. 200 Table Data Gateway
Section

DDD

11 entries
  1. 008 Aggregate
  2. 009 Aggregate Root
  3. 021 Bounded Context
  4. 045 Context Map
  5. 058 Domain Event
  6. 059 Domain Service
  7. 063 Entity
  8. 095 Infrastructure as Code
  9. 163 Repository
  10. 184 Shared Kernel
  11. 211 Value Object
Section

deployment

01 entry
  1. 020 Blue-Green Deployment
Section

distributed

01 entry
  1. 138 Peer-to-Peer
Section

distributed system

02 entries
  1. 173 Saga (Orchestration)
  2. 209 Two-Phase Commit
Section

distributed systems

03 entries
  1. 084 Geo-Replication
  2. 162 Replication
  3. 179 Service Mesh
Section

GOF

06 entries
  1. 006 Adapter
  2. 040 Composite
  3. 053 Decorator
  4. 130 Observer
  5. 188 Singleton
  6. 202 Template Method
Section

observability

02 entries
  1. 057 Distributed Tracing
  2. 117 Metrics & Alerts
Section

principle

01 entry
  1. 103 Liskov Substitution Principle
Section

reliability

01 entry
  1. 104 Load Shedding
Section

resilience

03 entries
  1. 025 Bulkhead
  2. 026 Bulkhead Cache
  3. 171 Sacrificial Architecture
Section

scalability

01 entry
  1. 182 Sharding
Section

security

01 entry
  1. 054 Defense in Depth
Section

structural

04 entries
  1. 023 Bridge
  2. 120 Module
  3. 151 Proxy
  4. 167 Reverse Proxy
Section

transversal

01 entry
  1. 047 Correlation ID
Section

UI

01 entry
  1. 039 Component-based UI
Index

By language