@startuml !include !include !include !include !include !include Person_Ext(CommunityMember, "Community Member", $sprite="users") System_Boundary(Signer, "Signer") { Container(SignerServer, "Signer Server", "Go binary", "Performs certificate signing", $sprite="go") ContainerDb(SignerDB, "Certificate repository", "Key-Value DB", $sprite="database") } System_Boundary(Signer2, "Other Signer") { Container_Ext(SignerServer2, "Signer Server") } System_Boundary(WebDB, "WebDB") { Container_Ext(WebDBApp, "WebDB application", "PHP", "Provides the user interface for requesting certificates", $sprite="php") Container_Ext(SignerClient, "Signer Client", "Go binary", "Handle signing request", $sprite="go") ContainerDb_Ext(DB, "Database", "MySQL/MariaDB", "Hold certificate requests and certificates", $sprite="mysql") } Rel(CommunityMember, WebDBApp, "Uses", "https") Rel(WebDBApp, DB, "Uses") Rel(SignerClient, DB, "Uses") Rel_R(SignerClient, SignerServer, "Uses", "Serial binary protocol") Rel(SignerServer, SignerDB, "Uses") BiRel_R(SignerServer, SignerServer2, "Synchronize", "TLS") @enduml