samples/C4_Container Diagram Sample - bigbankplc-icons.puml
at 23ce598samples/C4_Container Diagram Sample - bigbankplc-icons.puml
@startuml!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml!define DEVICONS https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/devicons!define FONTAWESOME https://raw.githubusercontent.com/tupadr3/plantuml-icon-font-sprites/master/font-awesome-5' uncomment the following line and comment the first to use locally' !include C4_Container.puml!include DEVICONS/angular.puml!include DEVICONS/dotnet.puml!include DEVICONS/java.puml!include DEVICONS/msql_server.puml!include FONTAWESOME/server.puml!include FONTAWESOME/envelope.puml' LAYOUT_TOP_DOWN()' LAYOUT_AS_SKETCH()LAYOUT_WITH_LEGEND()title Container diagram for Internet Banking SystemPerson(customer, Customer, "A customer of the bank, with personal bank accounts")System_Boundary(c1, "Internet Banking") { Container(web_app, "Web Application", "Java, Spring MVC", "Delivers the static content and the Internet banking SPA", "java") Container(spa, "Single-Page App", "JavaScript, Angular", "Provides all the Internet banking functionality to cutomers via their web browser", "angular") Container(mobile_app, "Mobile App", "C#, Xamarin", "Provides a limited subset of the Internet banking functionality to customers via their mobile device", "dotnet") ContainerDb(database, "Database", "SQL Database", "Stores user registraion information, hased auth credentials, access logs, etc.", "msql_server") Container(backend_api, "API Application", "Java, Docker Container", "Provides Internet banking functionality via API", "server")}System_Ext(email_system, "E-Mail System", "The internal Microsoft Exchange system", "envelope")System_Ext(banking_system, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.")Rel(customer, web_app, "Uses", "HTTPS")Rel(customer, spa, "Uses", "HTTPS")Rel(customer, mobile_app, "Uses")Rel_Neighbor(web_app, spa, "Delivers")Rel(spa, backend_api, "Uses", "async, JSON/HTTPS")Rel(mobile_app, backend_api, "Uses", "async, JSON/HTTPS")Rel_Back_Neighbor(database, backend_api, "Reads from and writes to", "sync, JDBC")Rel_Back(customer, email_system, "Sends e-mails to")Rel_Back(email_system, backend_api, "Sends e-mails using", "sync, SMTP")Rel_Neighbor(backend_api, banking_system, "Uses", "sync/async, XML/HTTPS")@enduml