Skip to content

Instantly share code, notes, and snippets.

@rgoulter
Last active January 1, 2026 16:39
Show Gist options
  • Select an option

  • Save rgoulter/2924e284ca2bc3043b518d45f59c2fbd to your computer and use it in GitHub Desktop.

Select an option

Save rgoulter/2924e284ca2bc3043b518d45f59c2fbd to your computer and use it in GitHub Desktop.

Plantuml

With the Nixpkgs plantuml:

  • either have to set env var (awkward),
  • custom derivation overriding it to be headless,
  • or install graphviz separately.
ln -s ~/.nix-profile/lib/plantuml.jar $HOME/doom-emacs/.local/etc/plantuml.jar

Examples from:

@startuml

skinparam componentStyle rectangle

package "Some Group" {
  HTTP - [First Component]
  [Another Component]
}

node "Other Groups" {
  FTP - [Second Component]
  [First Component] --> FTP
}

cloud {
  [Example 1]
}


database "MySql" {
  folder "This is my folder" {
    [Folder 3]
  }
  frame "Foo" {
    [Frame 4]
  }
  rectangle "Bar" {
    [Frame 5]
  }
}


[Another Component] --> [Example 1]
[Example 1] --> [Folder 3]
[Folder 3] --> [Frame 4]

@enduml
@startuml
!include <awslib/AWSCommon>
!include <awslib/InternetOfThings/IoTRule>
!include <awslib/Analytics/KinesisDataStreams>
!include <awslib/ApplicationIntegration/SimpleQueueService>

left to right direction

agent "Published Event" as event #fff

IoTRule(iotRule, "Action Error Rule", "error if Kinesis fails")
KinesisDataStreams(eventStream, "IoT Events", "2 shards")
SimpleQueueService(errorQueue, "Rule Error Queue", "failed Rule actions")

event --> iotRule : JSON message
iotRule --> eventStream : messages
iotRule --> errorQueue : Failed action message
@enduml
@startuml
!include <kubernetes/k8s-sprites-unlabeled-25pct>
package "Infrastructure" {
  component "<$master>\nmaster" as master
  component "<$etcd>\netcd" as etcd
  component "<$node>\nnode" as node
}
@enduml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment