-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathC4Container.puml
41 lines (32 loc) · 2.35 KB
/
C4Container.puml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
@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/devicons2
!define CLOUDICONS https://raw.githubusercontent.com/plantuml/plantuml-stdlib/master/cloudinsight
!include DEVICONS/react_original.puml
!include DEVICONS/postgresql.puml
!include CLOUDICONS/kafka.puml
title SummarisationSample: Containers
Person(customer, "Customer")
Person(manager, "Manager")
System_Boundary(summarisationSample, "Summarisation Sample") {
Container(customerSite, "Customer Website", "React", "Customer website, through which they manage their orders", , $sprite="react_original")
Container(customerGateway, "Customer API Gateway", "C#, WebAPI", "API Gateway through which the customer website accesses underlying services")
Rel(customerSite, customerGateway, "Uses", "HTTPS")
Container(managementSite, "Management Website", "React", "Management website, through which managers will manage the system", $sprite="react_original")
Container(managementGateway, "Customer API Gateway", "C#, WebAPI", "API Gateway through which the management website accesses underlying services")
Rel(managementSite, managementGateway, "Uses", "HTTPS")
ContainerDb(kafka, "Message Bus", "Kafka", "Messaging", $sprite="kafka")
Container(orderService, "Order Service", "C#, WebAPI", "Order microservice, responsible for managing orders")
ContainerDb(ordersDB, "Orders Database", "PostgreSQL", "Holds order details and status", $sprite="postgresql")
Rel(orderService, ordersDB, "CRUD", "Entity Framework")
Rel(orderService, kafka, "Publishes Messages", "TCP")
Rel(customerGateway, orderService, "Place Order", "HTTPS")
Container(activityService, "Activity Service", "C#, WebAPI", "Activity microservice, responsible for tracking important system activities")
ContainerDb(activitiesDB, "Activities Database", "PostgreSQL", "Holds summaries/statistics of the activities performed in the system", $sprite="postgresql")
Rel(activityService, activitiesDB, "CRUD", "Entity Framework")
Rel(activityService, kafka, "Subscribes to Messages", "TCP")
Rel(managementGateway, activityService, "Get Summary", "HTTPS")
}
Rel(customer, customerSite, "Places Order", "HTTPS")
Rel(manager, managementSite, "Requests Summary", "HTTPS")
@enduml