Skip to content
← All terms

Intermediate Event

A double-circled event that happens between the start and end of a process: anything that interrupts, waits, signals, or catches.

What an intermediate event is

An intermediate event is a circle with a double border. It represents something that happens *during* the process: not at the start, not at the end. Intermediate events come in two families. *Catching* intermediate events wait for something to happen (a timer to expire, a message to arrive, a signal to fire) and then let the token continue. *Throwing* intermediate events actively produce something (send a message, broadcast a signal, escalate) and then continue immediately.

The marker inside the circle tells you the event type: a clock for timers, an envelope for messages, a triangle for signals, a lightning bolt for errors, an envelope with a dashed border for non-interrupting messages, and so on. An empty circle with a double border is a *plain* intermediate event, mostly a delay marker where no specific trigger is modelled.

The intermediate events you will use most

  • `Timer (catching)`: "wait 48 hours before sending the follow-up". The simplest way to model a delay in the middle of a process.
  • `Message (catching)`: "wait for the customer confirmation". The flow pauses until the message arrives.
  • `Message (throwing)`: "send the shipping notification to the customer". The flow continues immediately after sending.
  • `Signal (catching)`: "listen for a company-wide broadcast". Unlike messages, signals are fire-and-anyone-catches.
  • `Signal (throwing)`: "broadcast that the campaign has launched". Any other process listening for that signal reacts.

Intermediate events in LucidFlow

LucidFlow detects intermediate events when the source document describes waits, notifications, or cross-process triggers ("we send the customer a confirmation, then wait for their response", "the sales team is notified when the quote is approved"). The generator classifies timers by explicit duration ("wait 24 hours"), messages by named recipients ("notify the customer"), and signals by broad audiences ("announce to the marketing team"). The bottleneck heatmap colours long waits (frequently the single biggest source of delay in a process) so you can target them for asynchronous automation.

Frequently asked questions

What is the difference between an intermediate event and a boundary event?

An intermediate event sits in the normal sequence flow. The token must pass through it. A boundary event is attached to the side of an activity and fires only while that activity is running. Both use the same markers, the placement is what differs.

Can an intermediate event be both throwing and catching?

No. Each intermediate event is one or the other. Throwing events have a filled marker, catching events have an unfilled marker. If the process needs to send and then wait for a reply, model that as two intermediate events: throw, then catch.

Do intermediate events count toward process duration?

Catching ones do. The time the token spends waiting is part of the instance’s elapsed time. Throwing ones typically do not, because they fire and pass the token on immediately. Any latency is on the side of whoever receives the message.

Related terms

← Back to the full glossary