Design Patterns vs. Blueprints in the BPMN Context

by Christian Mächler

25. June 2024 3 minutes
Design Patterns vs Blueprints

Almost simultaneously with the publication of our article Avoid Typical Errors in Process Models Through Design Patterns, Camunda launched Process Blueprints on their marketplace. We were promptly asked if we could make these design patterns available on the marketplace. During the preparations for this, we realized that we were not quite pursuing the same goal with the design patterns as Camunda was with the blueprints. The interesting discussion with Camunda about the differences between design patterns and blueprints finally led me to write this article. With Camunda's support, our design patterns were then converted into blueprints and published.

General Definitions

What do the two terms mean in the software engineering context? The research on «blueprint» did not result in an established definition. «Blueprint» just refers to a plan or design. The definition of "design pattern" is somewhat more specific (from the recommended Wikipedia article):

In software engineering, a design pattern describes a relatively small, well-defined aspect (i.e. functionality) of a computer program in terms of how to write the code.

Below are the definitions in the BPMN context, derived from the research and the exchange with Camunda.

Blueprint

Blueprints are reusable BPMN processes. These can be either

  1. prefabricated solutions (e.g., a reservation process) or
  2. sub-processes that are called by other processes (e.g., an approval process).

Ideally, the blueprint is only controlled via variables so that no customization is necessary when using it.

Design Pattern

A design pattern shows how a specific modeling problem can be solved reliably. It is a (preferably) independent solution concept. This independence allows different design patterns to be combined with each other as desired. Examples of this would be

  1. solutions to specific problems, such as the Updatable Timer Pattern, which describes how timers in processes can be made modifiable or
  2. solutions to conceptual challenges, e.g., methods for breaking down a process into comprehensible components

Differences Between Design Patterns and Blueprints

The main difference is the concrete BPMN process and everything associated with it. Blueprints always contain a BPMN process and can theoretically be used as black boxes (you only need to understand the inputs and outputs, but not the process itself). Design patterns, on the other hand, are on a conceptual level, have no BPMN process (at most they are used for explanation) and without a clear understanding, they are useless. The way a design pattern is used is the same for all processes, but the implementation or the resulting process can look different each time.

Blueprints can include design patterns, but design patterns cannot include blueprints.

Conclusion

Whether blueprint or design pattern, the most important thing is to understand the context in which they are used.

Otherwise, a design pattern can quickly degrade into an antipattern (opposite).

Related topics


Design Patterns

Avoid Typical Errors in Process Models Through Design Patterns

15. April 2024

Learn how to break down and optimise complex processes into manageable elements using design patterns.

More
7 Schritte zur Prozessautomatisierung

7 steps to successful process automation

BPM
02. June 2023

Process automation aims to execute business processes automatically in order to achieve an increase in efficiency, productivity and quality. We've put together a guide for you that includes seven essential steps for successful process automation.

More
Workflow

How process automation can make a difference in your business

BPM
21. April 2023

There are numerous benefits that process automation can bring to your business. It simplifies the work process, optimizes costs, and makes results more reliable and satisfying. This article will show you the positive effects of process automation on your company.

More