
PlantUML is a tool which allows us to draw diagram from a text based domain specific language. This post is about general concepts of diagrams, not specific to UML.
PLANTUML ONLINE SEQUENCE DIAGRAM HOW TO
In today’s post, we will learn how to build diagrams with PlantUML and look into different sort of diagrams that are often used.

PlantUML allows us to create diagrams from text script. That’s where PlantUML comes in, or puml for short. You need a sense of aesthetics to use different shapes, place elements in a way that makes sense and use different ways of linking shapes so that the diagram doesn’t get convoluted, failing any of those steps will discourage your audience from even trying to understand what your diagram represents. Whether it is to convey an idea to someone or to pindown an idea that I have in my head or simply to think about a solution for a problem.ĭiagrams are useful as they are cheap, quick scribble on paper and we are done but everyone know that drawing is not an easy task and therefore even drawing diagrams is hard. In my work I draw diagrams almost every day. However to be clear, this is not a property of the messaging or the interaction between the two but rather internal detail of how A, in this case, is implemented, which may actually be off topic depending on what the diagram is intended to depict.Aug 30th, 2019 - written by Kimserey with. If we want to describe the internal threading of one or the other, we can illustrate, say, a response being received out of the activation. There is no such thing as sending an async message over the web - it is just sending a message over the web, which is either request/command or a reply, if you will.įirst, we should focus on behavior (is there one or more response for a given request/command) and timing (how much delay do we expect) this is the high level takeaway of the interaction between A & B. It is an adjective that describes implementation detail and timing of external events relative to the internal threading design of either a client or a server, and evokes strategies to handle such events as the main program may be doing something else at the time.Īt the high level when talking about messages between client and server or two servers (and we are not diving into internal implementation details of either one) we can talk about one way messages, requests/commands (i.e. Async describes an event (message or otherwise) that happens independent of the main flow of the program (here, A or B). The term async doesn't really apply at this level. That means you have a book to hand new employees. If that standard comes out of some version of a UML book so much the better. The most important thing is that your shop have a standard way to do it so you can understand each other. When async is involved predicting object life time this way becomes very complicated. To depict flow of control and to predict object life time so you know when it's safe to delete them.

Traditionally sequence diagrams have had two jobs. Really you have two different flows of control marching through A at that point. If you have a call back to A it makes more sense to have a 'return' arrow. In those cases the safest depiction is no return arrow at all. Most likely you don't even know which will happen. Your "or here" line tells me that when B terminates you expect A to have already terminated. Your "response here" line tells me that when B terminates you expect A to still be processing and, because you put it right at the end, to terminate when it see's B respond. Async doesn't really fit in this diagram because being async means you have your own damn y axis. Multiple diagrams can be kept open and edited at the same time.

The powerful editor provides syntax and line highlighting, auto-completion, various shortcuts, and syntax-error feedback. In this metaphor a slant would be lag not asynchronicity. Pladitor is a PlantUML diagram editor for out-of-the-box creating, editing, and sharing diagrams.

One thing you'll notice is that almost no one puts a slant on the arrows. I can prove this with a google image search. I'm not going to tell you how because every dang shop has their own way of doing them.
