Non-instantaneous messages in Sequence Diagram

+1 vote
asked Oct 30, 2017 in Wanted features by JimminyCricket (120 points)

I have a use case to model non-instantaneous messages in the sequence diagram. For example,

@startuml
A -> C: Starts before 'B' sends
B -> C: But B's message arrives before A's
@enduml

In the diagram, I'd like the start-point of A's arrow to be above B's. But B's arrow end-point should reach C before A's. The only way to do this is to have the message arrows be angled. I'm not sure how this would fit with the syntax, but is this feature possible?

commented May 23, 2022 by The-Lu (64,760 points)

Hello J. and all,

See some new enhancements about this topic, here:

Here is a first proposal (Thank to PlantUML team):

@startuml
!pragma teoz true
A ->(50) C: Starts [before]\nwhen 'B' sends
& B ->(25) C: \nBut B's message\n arrives before A's
@enduml

If that can help,
Regards.

1 Answer

0 votes
answered Nov 1, 2017 by Steve

I have represented this with an extra participant representing "uncertainty" or "transport" or similar, depending on the mechanism at work.  I then encode it like this:

@startuml
A -> uncertainty : A message
B -> uncertainty : B message
uncertainty -> C : B message
uncertainty -> C : A message
@enduml
...