T02: Activation and Deactivation

3.2.1 Why Activation Matters

In basic sequence diagrams, we only see who talks to whom.

However, real systems also have:

  • Execution duration

  • Processing time

  • Nested calls

  • Blocking operations

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:

  1. User sends request

  2. Server becomes active

  3. Server processes

  4. Server responds

  5. Server deactivates

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:

  • + activates Server

  • - deactivates Server

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:

  • Performance analysis

  • Latency modeling

  • System debugging documentation


3.2.7 Activation with Self-Calls

A participant can call itself.

Use cases:

  • Recursive functions

  • 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:

  • Modeling nested calls

  • 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

  1. Activating without deactivating

  2. Incorrect nesting order

  3. Deactivating before response

  4. 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:

  • User initiates payment

  • Payment Service processes

  • Payment Service calls Bank API

  • Bank API returns approval/decline

  • Payment Service responds to User

Constraints:

  • Use explicit activation

  • Show nested activation

  • 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:

  • Overlapping activations

  • Structuring call sequences carefully

Example:

This approximates parallel invocation.


3.2.14 Key Takeaways

Activation and deactivation:

  • Represent execution duration

  • Clarify nested calls

  • Improve technical accuracy

  • Make performance behavior visible

Understanding activation bars is essential for modeling:

  • Microservice choreography

  • Call stacks

  • API orchestration

  • 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.

Last updated