Open
Description
summary
c4plantuml
URL was used in the past due to its history do you think plantuml
should be preferred?
context
background
- These two diagrams are identical. (i) is regacy style, (ii) is plantuml-stdlib style.
- https://kroki.io/c4plantuml/svg/eNp9UctuwjAQvOcrtjlRCdoLx6pSiTj0QIUKPUfGbBIrjl15F0H_vovj8BC0N-9odmZ2_GCctrstwksxfS6mZeEd44Ffs4wNW4TVDzF2kGDYGlUH1UHlA7wLFBwyzJRrjasTN8uWGMi7kd4R-w7DGPKBUSQoF-wNBgL4CrhB2AhrDHvDDXxHCWUjBkprv3NMT_lj1puMNr1iSXEUuT_SRCdr_Z5OdgTsQTeo26OrCVfySb-cH3jUKWPPBvPJcQY6ya4lsomuknNhdPDkK4b5QTfK1Qh4uXCOPki7SopE0VkM7zvRV-wDEihrh5K0AJCuF3v5iE6x8S6G_0R7UftNR1-EJDRhlTOl2wvq9akrdFtK-Y9tpZ0PNHWz8eGm_H-24xGL9bKXuLd56qFP9wsEgeX9
- https://kroki.io/plantuml/svg/eNp9UctuwjAQvOcrtjlRCdoLx6pSiTj0QIUKPUfGbBIrjl15F0H_vovj8BC0N-9odmZ2_GCctrstwksxfS6mZeEd44Ffs4wNW4TVDzF2kGDYGlUH1UHlA7wLFBwyzJRrjasTN8uWGMi7kd4R-w7DGPKBUSQoF-wNBgL4CrhB2AhrDHvDDXxHCWUjBkprv3NMT_lj1puMNr1iSXEUuT_SRCdr_Z5OdgTsQTeo26OrCVfySb-cH3jUKWPPBvPJcQY6ya4lsomuknNhdPDkK4b5QTfK1Qh4uXCOPki7SopE0VkM7zvRV-wDEihrh5K0AJCuF3v5iE6x8S6G_0R7UftNR1-EJDRhlTOl2wvq9akrdFtK-Y9tpZ0PNHWz8eGm_H-24xGL9bKXuLd56qFP9wsEgeX9
!include <C4/C4_Context>
title System Context diagram for Internet Banking System
Person(customer, "Banking Customer", "A customer of the bank, with personal bank accounts.")
System(banking_system, "Internet Banking System", "Allows customers to check their accounts.")
System_Ext(mail_system, "E-mail system", "The internal Microsoft Exchange e-mail system.")
System_Ext(mainframe, "Mainframe Banking System", "Stores all of the core banking information.")
Rel(customer, banking_system, "Uses")
Rel_Back(customer, mail_system, "Sends e-mails to")
Rel_Neighbor(banking_system, mail_system, "Sends e-mails", "SMTP")
Rel(banking_system, mainframe, "Uses")
plantuml-stdlib available.
plantuml-stdlib Better looking diagrams. kroki also supports several stdlibs.
other example(AWS):
!include <awslib/AWSCommon>
!include <awslib/Groups/all>
!include <awslib/Compute/LambdaLambdaFunction>
!include <awslib/General/Documents>
!include <awslib/General/Multimedia>
!include <awslib/General/Tapestorage>
!include <awslib/General/User>
!include <awslib/MediaServices/ElementalMediaConvert>
!include <awslib/MachineLearning/Transcribe>
!include <awslib/Storage/SimpleStorageService>
' define custom group for Amazon S3 bucket
AWSGroupColoring(S3BucketGroup, #FFFFFF, AWS_COLOR_GREEN, plain)
!define S3BucketGroup(g_alias, g_label="Amazon S3 bucket") AWSGroupEntity(g_alias, g_label, AWS_COLOR_GREEN, SimpleStorageService, S3BucketGroup)
!procedure $stepnum($number)
<back:black><color:white><b> $number </b></color></back>
!endprocedure
' Groups are rectangles with a custom style using stereotype - need to hide
hide stereotype
skinparam linetype ortho
skinparam rectangle {
BackgroundColor AWS_BG_COLOR
BorderColor transparent
}
rectangle "$UserIMG()\nUser" as user
AWSCloudGroup(cloud){
RegionGroup(region) {
S3BucketGroup(s3) {
rectangle "$MultimediaIMG()\n\tvideo\t" as video
rectangle "$TapestorageIMG()\n\taudio\t" as audio
rectangle "$DocumentsIMG()\n\ttranscript\t" as transcript
user -r-> video: $stepnum("1")\lupload
video -r-> audio
audio -r-> transcript
}
rectangle "$LambdaLambdaFunctionIMG()\nObjectCreated\nevent handler" as e1
rectangle "$ElementalMediaConvertIMG()\nAWS Elemental\nMediaConvert" as mediaconvert
rectangle "$TranscribeIMG()\nAmazon Transcribe\n" as transcribe
video -d-> e1: $stepnum("2")
e1 -[hidden]r-> mediaconvert
mediaconvert -[hidden]r-> transcribe
mediaconvert -u-> audio: $stepnum("3")
transcribe -u-> transcript: $stepnum("4")
StepFunctionsWorkflowGroup(sfw) {
rectangle "$LambdaLambdaFunctionIMG()\nextract audio" as sfw1
rectangle "$LambdaLambdaFunctionIMG()\ntranscribe audio" as sfw2
e1 -r-> sfw1: Start\nExecution
sfw1 -r-> sfw2
sfw1 -u-> mediaconvert
sfw2 -u-> transcribe
}
}
}
Metadata
Metadata
Assignees
Labels
No labels