Skip to main content

🌿 PlantUML  ·  Text-based UML  ·  Client-side rendering

PlantUML Diagrams in Confluence

Write PlantUML syntax directly inside a Confluence macro. Class diagrams, component diagrams, deployment, activity, state, and more — rendered live in the browser, stored as text, private by design.

⚡ Install Free — Lite Plan · All Diagram Types

✓ Same syntax as your IDE plugins ✓ No server-side rendering — stays in Confluence ✓ Version-controlled text diagrams

What is PlantUML?

PlantUML is an open-source, text-to-diagram tool that converts a simple, human-readable syntax into rendered UML and non-UML diagrams. Instead of dragging shapes on a canvas, you describe participants, relationships, and flows in a plain-text block — PlantUML turns that description into a diagram image.

Because the source is plain text, PlantUML diagrams fit naturally into software development workflows: store them in Git alongside your code, review changes in pull requests, generate them in CI pipelines, and regenerate them automatically when your architecture changes. This is the approach that software architects and Java-ecosystem teams have been using for over a decade.

PlantUML supports a wide surface of diagram types — from precise UML artefacts like class diagrams and component diagrams to process-oriented views like activity and state diagrams. It is the go-to choice when a team wants a single text syntax that covers the full spectrum of UML without switching tools.

Supported PlantUML Diagram Types

All major PlantUML diagram categories are supported. Write standard @startuml … @enduml blocks and the diagram renders live.

Diagram TypeWhat it ShowsTypical Use
ClassClasses, interfaces, attributes, methods, and relationships (inheritance, composition, dependency)Domain model, OOP design, API object hierarchy
ComponentSoftware components, packages, interfaces, and their dependenciesSystem architecture, microservice topology, module structure
DeploymentNodes, artifacts, and communication paths across infrastructureCloud deployment topology, infrastructure runbooks
ActivityWorkflow steps, decision branches, parallel paths, and swim lanesBusiness processes, CI/CD pipelines, on-call runbooks
StateStates, transitions, guards, and entry/exit actionsOrder lifecycle, auth flows, feature flag state machines
Use CaseActors, use cases, and their relationships within a system boundaryRequirements documentation, stakeholder communication
Entity RelationshipEntities, attributes, and cardinality between database tablesDatabase schema documentation, data model overview
TimingState changes on a shared time axis for multiple participantsProtocol timing, embedded system signal analysis
SequenceMessage exchanges between participants over timeAPI call flows, event-driven interactions

PlantUML in Action

The snippet below is a complete PlantUML class diagram. Paste it directly into the ZenUML macro editor — no modifications needed.

Package grouping

The package keyword groups related classes into a named boundary — useful for bounded-context documentation and microservice domain maps.

Relationship multiplicity

Arrow syntax expresses association (-->), composition (*--), and multiplicity labels ("1", "0..*") that map directly to UML 2.x semantics.

Enums and typing

PlantUML supports enum alongside class and interface, so your full domain vocabulary — including state machines — appears in a single diagram.

ZenUML DSL vs PlantUML for Sequence Diagrams

ZenUML for Confluence supports both syntaxes. Here is how they differ for sequence diagrams specifically — the diagram type where the choice matters most.

DimensionZenUML DSLPlantUML
Syntax styleMethod-call notation — reads like code (OrderService.placeOrder(cart))Arrow notation — explicit message passing (Client -> Server: placeOrder(cart))
ConcisenessMore concise for multi-step API flows; nesting and return values implicitMore verbose; every arrow and return must be stated explicitly
Readability for developersFamiliar to developers — looks like function calls in any languageFamiliar to architects and teams with prior PlantUML experience
Diagram typesSequence diagrams onlySequence plus eight other diagram types in the same syntax
UML complianceOMG UML 2.5.1 compliantUML 2.x aligned (community-driven)
Best forTeams whose primary use case is API interaction documentationTeams that document architecture across multiple UML diagram types
IDE supportZenUML VS Code extension, IntelliJ pluginPlantUML VS Code extension, IntelliJ PlantUML Integration (widely adopted)

Recommendation: Use ZenUML DSL when your team's primary use case is sequence diagrams for API or service interaction documentation. Use PlantUML when your team already uses PlantUML in their IDE workflow and wants a single syntax for class, component, deployment, and sequence diagrams. Both are available in the same macro — you can mix and match across different Confluence pages.

Who Uses PlantUML in Confluence

Five common scenarios where engineering teams reach for PlantUML inside Confluence.

Architecture Decision Records

Software architects embed PlantUML component and deployment diagrams directly in ADR pages. When the decision changes, they update the text source and the diagram updates instantly — no stale PNG exports to hunt down and replace.

Java Domain Model Documentation

Java and Kotlin teams generate class diagrams from their existing PlantUML IDE plugin annotations and paste them into Confluence. The same @startuml block that renders in IntelliJ renders identically in the ZenUML macro.

Infrastructure Runbooks

SRE and platform teams use PlantUML deployment diagrams on runbook pages to show node topology, service dependencies, and communication paths — keeping the diagram in the same Confluence space as the on-call procedures.

Business Process Documentation

Business analysts and product managers use PlantUML activity diagrams with swim lanes to model multi-team approval workflows, onboarding processes, and incident escalation paths — without needing access to a separate diagram tool.

Database Schema Pages

Backend teams use PlantUML entity relationship diagrams on Confluence data-model pages. Schema changes are reviewed as text diffs in pull requests, then the updated PlantUML block is pasted back into Confluence to keep documentation current.

Already using ZenUML DSL?

ZenUML DSL and PlantUML coexist in the same app. Use ZenUML DSL for your sequence diagrams and PlantUML for everything else — class, component, deployment, and activity diagrams. One Confluence macro, both syntaxes.

Frequently Asked Questions

Common questions about PlantUML support in ZenUML for Confluence.

What is PlantUML?

PlantUML is an open-source, text-to-diagram tool that converts a simple, human-readable syntax into UML and non-UML diagrams. You describe participants, classes, components, and their relationships in a plain-text block — PlantUML turns that description into a rendered diagram. Because diagrams are plain text, they can be stored in Git, reviewed in pull requests, and regenerated automatically when your system architecture changes. PlantUML has been widely adopted by Java developers, software architects, and teams across the JVM ecosystem for over a decade.

What PlantUML diagram types does ZenUML for Confluence support?

  • Class diagrams — classes, interfaces, attributes, methods, and UML relationships
  • Component diagrams — software components, packages, and dependencies
  • Deployment diagrams — nodes, artifacts, and infrastructure topology
  • Activity diagrams — workflow steps, decision branches, and swim lanes
  • State diagrams — states, transitions, and guards
  • Use case diagrams — actors, use cases, and system boundaries
  • Entity relationship diagrams — entities and database cardinality
  • Timing diagrams — state changes on a shared time axis
  • Sequence diagrams — message exchanges between participants

How does PlantUML compare to ZenUML DSL for sequence diagrams?

  • ZenUML DSL uses method-call notation that reads like code — more concise for multi-step API flows and developer-facing interaction docs.
  • PlantUML uses arrow notation — explicit, familiar to teams with prior PlantUML experience, and consistent with the other eight PlantUML diagram types.

Can I copy PlantUML code from my IDE into Confluence?

Yes. ZenUML for Confluence accepts the same standard PlantUML syntax that your IDE plugins produce — IntelliJ PlantUML Integration, the VS Code PlantUML extension, or any other tool that generates @startuml … @enduml blocks. Paste the source directly into the ZenUML macro editor and it renders immediately. There is no format conversion or image export step. The same source that renders in your IDE renders identically in Confluence.

Does PlantUML render server-side or client-side in ZenUML?

PlantUML in ZenUML for Confluence renders entirely client-side in the browser. Your PlantUML source code is never sent to ZenUML servers or to the public PlantUML render server at plantuml.com. The rendering engine runs inside the Confluence page, scoped to your Atlassian instance. Diagrams are stored as Confluence custom content — plain text, within your instance. This design is important for teams with data residency requirements or confidential architecture diagrams that must not leave the organisation's infrastructure.

View full FAQ →

Add PlantUML to Your Confluence

Install ZenUML for Confluence and start writing PlantUML diagrams directly on your pages. Free Lite plan. No credit card. No external accounts. Installs in under two minutes.

Install from Marketplace

Search for "ZenUML" on the Atlassian Marketplace. Choose Lite (free) or Full (paid). Admin permission required.

Insert a ZenUML macro

On any Confluence page, type /ZenUML or use the macro picker. Select PlantUML as the diagram type in the macro dialog.

Paste your PlantUML code

Paste your existing @startuml … @enduml block into the editor. The diagram renders live as you type. Click Publish to save.

⚡ Install Lite — Free · Install Full — Paid · All Diagram Types

Used by engineering teams at Amazon, ThoughtWorks, and more.  |  Published by P&D VISION on Atlassian Marketplace.