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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
| @startuml !include <C4/C4_Context.puml> !include <C4/C4_Container.puml> !include <office/Users/user.puml>
LAYOUT_WITH_LEGEND()
title UCS - High Level
Person(OperatorMeli, Operator Meli, "<$user>")
System_Boundary(Fury, "Fury") {
System_Boundary(Backoffice, "Backoffice") { System_Boundary(UCSFrontend, "UCS Frontend Module") { Container(UCSFrontendRegistry, "Registry","JS + Nordic") Container(UCSFrontendSorter, "Sorter","JS + Nordic") Container(UCSFrontendSorterEvents, "Sorter Events","JS + Nordic") } }
System_Boundary(UCSRegistry, "UCS Registry") { Container(Registry, "Registry", "Golang") ContainerDb(RegistryDB, "Database", "MySQL") }
System_Boundary(UCSSorter, "UCS Sorter") { Container(Sorter, "Sorter", "Golang") ContainerDb(SorterDB, "Database", "MySQL") }
System_Boundary(UCSSorterEvents, "UCS Sorter Events") { Container(SorterEvents, "Sorter Events", "Golang") ContainerDb(SorterEventsDB, "Database", "MySQL") }
System_Boundary(UCSMeasures, "UCS Measures") { Container(Measures, "Measures", "Golang") }
System_Boundary(UCSPrinter, "UCS Printer") { Container(Printer, "Printer", "Golang") }
System_Boundary(UCSDeviceState, "UCS Device State") { Container(DeviceState, "DeviceState", "Golang") }
System_Boundary(BigQ, "BigQ") { System_Ext(BigQTopic, "Topic") System_Ext(BigQConsumer, "Consumer") }
System_Ext(OtherMeliApps, "Other Meli Apps") }
System_Boundary(LogisticCenter, "Logistic Centers") { Container(LogisticCenterPrinters, "Printers", "Device") Container(LogisticCenterSorters, "Sorters", "Backend") }
' Users > Frontend Rel(OperatorMeli, UCSFrontendRegistry, "Manages Devices") Rel(OperatorMeli, UCSFrontendSorter, "Manages Sorter") Rel(OperatorMeli, UCSFrontendSorterEvents, "Analyzes metrics of Sorter")
' Frontend > API Rel(UCSFrontendRegistry, Registry, "Manages Devices") Rel(UCSFrontendRegistry, DeviceState, "Updates Device status") Rel(UCSFrontendSorter, Sorter, "Manages Sorter settings") Rel(UCSFrontendSorterEvents, SorterEvents, "Recovers metrics from Sorter")
' API > API Rel(Printer, Registry, "Recovers Printer settings") Rel(Sorter, Registry, "Recovers Sorter settings") Rel(Sorter, Measures, "Send Measures")
' API > DB Rel_Back_Neighbor(RegistryDB, Registry, "Reads from and writes to") Rel_Back_Neighbor(SorterDB, Sorter, "Reads from and writes to") Rel_Back_Neighbor(SorterEventsDB, SorterEvents, "Reads from and writes to")
' API > LogisticCenter Rel(Printer, LogisticCenterPrinters, "Send Print") Rel(Sorter, LogisticCenterSorters, "Send ramp configuration per package") Rel(LogisticCenterSorters, Sorter, "Sends events that occurred in the sorter")
' API > BigQ Rel_Back_Neighbor(BigQTopic, BigQConsumer, "Send messages") Rel(Sorter, BigQTopic, "Send messages") Rel(BigQConsumer, SorterEvents, "Read messages") Rel(Measures, BigQTopic, "Send messages") Rel(BigQConsumer, Measures, "Read messages")
' OtherMeliApps > API Rel(OtherMeliApps, Registry, "Recovers device informations") Rel(OtherMeliApps, Printer, "Send Print request") Rel(OtherMeliApps, Sorter, "Send package configurations") @enduml
|