3.2.1 Why Activation Matters
In basic sequence diagrams, we only see who talks to whom.
However, real systems also have:
Activation bars (also called lifeline activations) represent the period during which a participant is actively executing a process.
They visually answer:
When is a system component actively processing a request?
3.2.2 What Is an Activation Bar?
An activation bar:
Appears as a vertical rectangle on a participant’s lifeline
Represents processing time
Begins when execution starts
Ends when execution finishes
In Mermaid, activation is controlled using:
3.2.3 Basic Activation Example
Explanation:
The activation bar shows execution duration.
3.2.4 Implicit vs Explicit Activation
Mermaid can automatically activate participants using arrow modifiers:
The + indicates activation.
Example:
Here:
This is shorthand syntax.
Equivalent to:
Use explicit activation for clarity in complex diagrams.
3.2.5 Nested Activation
Systems often make downstream calls.
Example:
Observe:
API remains active while waiting for Database
Database has its own activation period
Nested execution is clearly visualized
This is critical for modeling call stacks.
3.2.6 Modeling Blocking Calls
Activation bars help illustrate blocking behavior.
Interpretation:
Server is blocked while waiting for External API
Activation nesting shows dependency timing
This is useful for:
System debugging documentation
3.2.7 Activation with Self-Calls
A participant can call itself.
Use cases:
Internal validation steps
Layered logic inside same component
3.2.8 Real-World Example — Authentication Flow
Notice:
Activation begins at each request
Deactivation occurs after response
Execution order is visually clear
This models a real production authentication workflow.
3.2.9 Long-Running Processes
Activation bars are especially useful for long-running tasks.
Example: Report generation.
The activation visually communicates:
Backend waits for ReportEngine
ReportEngine processes independently
Execution lifetimes are distinct
3.2.10 When to Use Activation Explicitly
Use activation bars when:
Showing blocking operations
Explaining execution timing
Documenting performance-sensitive systems
Teaching call stack mechanics
Avoid overusing activation in:
Simple request-response diagrams
High-level conceptual overviews
3.2.11 Common Mistakes
Activating without deactivating
Deactivating before response
Using activation on both sender and receiver unnecessarily
Incorrect:
Here, activation/deactivation targets are incorrect.
Correct:
3.2.12 Hands-On Exercise
Model a Payment Processing Flow:
Requirements:
Payment Service processes
Payment Service calls Bank API
Bank API returns approval/decline
Payment Service responds to User
Constraints:
Use shorthand + and - syntax at least once
3.2.13 Advanced Tip: Activation for Concurrency Modeling
While Mermaid does not simulate real concurrency timing, activation bars can approximate parallel operations by:
Structuring call sequences carefully
Example:
This approximates parallel invocation.
3.2.14 Key Takeaways
Activation and deactivation:
Represent execution duration
Improve technical accuracy
Make performance behavior visible
Understanding activation bars is essential for modeling:
Microservice choreography
Blocking vs non-blocking systems
In the next topic, we will explore Notes and Loops, which allow you to annotate and repeat interactions in sequence diagrams.