You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
2.1 KiB
Plaintext
39 lines
2.1 KiB
Plaintext
@startuml
|
|
!includeurl https://raw.githubusercontent.com/kirchsth/C4-PlantUML/master/C4_Dynamic.puml
|
|
' uncomment the following line and comment the first to use locally
|
|
' !include C4_Dynamic
|
|
|
|
LAYOUT_TOP_DOWN
|
|
' LAYOUT_AS_SKETCH()
|
|
LAYOUT_WITH_LEGEND()
|
|
|
|
Person(customer, Customer, "A customer")
|
|
System_Boundary(c1, "Customer Information") {
|
|
Container(app, "Customer Application", "Javascript, Angular", "Allows customers to manage their profile")
|
|
Container(customer_service, "Customer Service", "Java, Spring Boot", "The point of access for customer information")
|
|
Container(message_bus, "Message Bus", "RabbitMQ", "Transport for business events")
|
|
Container(reporting_service, "Reporting Service", "Ruby", "Creates normalised data for reporting purposes")
|
|
Container(audit_service, "Audit Service", "C#/.NET", "Provides organisation-wide auditing facilities")
|
|
ContainerDb(customer_db, "Customer Database", "Oracle 12c", "Stores customer information")
|
|
ContainerDb(reporting_db, "Reporting Database", "MySQL", "Stores a normalized version of all business data for ad hoc reporting purposes")
|
|
Container(audit_store, "Audit Store", "Event Store", "Stores information about events that have happened")
|
|
}
|
|
|
|
'simple order with Interact
|
|
Interact(customer, app, "Updates his profile using", "HTTPS")
|
|
Interact(app, customer_service, "Updates customer information using", "JSON/HTTPS")
|
|
Interact(customer_service, customer_db, "Stores data in", "JDBC")
|
|
|
|
'specific order with Interact2; GetIndex(0)..change auto increment value to 0; "..."..custom index format
|
|
Interact2_Right("GetIndex(0)-1", customer_service, message_bus, "Sends customer update events to", "async")
|
|
'GetIndex().. increment +1
|
|
Interact2_Up("GetIndex()-2", customer_service, app, "Confirm update to", "async")
|
|
|
|
Interact2("GetIndex()-1", message_bus, reporting_service, "Sends customer update events to", "async")
|
|
Interact2("GetIndex()-1", reporting_service, reporting_db, "Stores data in")
|
|
|
|
' specify a new index
|
|
SetIndex(5)
|
|
Interact2("GetIndex()-2", message_bus, audit_service, "Sends customer update events to", "async")
|
|
Interact2("GetIndex()-2", audit_service, audit_store, "Stores events in")
|
|
@enduml |