Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix #210 Create Context Diagram and Container Diagram #211

Merged
merged 1 commit into from
Oct 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions docs/01-Component.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
@startuml

!include C4.puml
!include C4_Context.puml
!include C4_Container.puml
!include C4_Component.puml

LAYOUT_WITH_LEGEND()

title Container Diagram

top to bottom direction
@enduml
62 changes: 62 additions & 0 deletions docs/01-Container.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
@startuml

!include C4.puml
!include C4_Context.puml
!include C4_Container.puml
!include C4_Component.puml

LAYOUT_WITH_LEGEND()

title DayBook System Container Diagram

top to bottom direction

Person(user, "User", "A user of the DayBook")
System(DayBookFrontEnd, "DayBook FrontEnd", "")
System(DayBookBackEnd, "DayBook BackEnd", "")

Container_Boundary(DayBookFrontEnd, "DayBook FrontEnd") {
Container(UI, "User front interface", "React", "Handles user interactions")
Container(APIGateway, "API Gateway", "Java, Quarkus", "Handles user interactions")
Container(AuthFront, "Authorizations Microservice", "Java, Quarkus", "Authentication and authorizations users")
ContainerDb(APIDatabase, "Cache Database", "PostgreSQL", "Stores ")
ContainerDb(AuthFrontDatabase, "Auth RO Database", "PostgreSQL", "Stores ")
}

Container_Boundary(DayBookBackEnd, "DayBook BackEnd") {
Container(AuthBack, "Authorizations Microservice", "GoLang", "Authentication and authorizations users")
Container(Debezium, "Debezium Microservice", "Java, Spring", "Debezium")
Container(Dictionary, "Dictionary Microservice", "GoLang", "Dictionary")
Container(JsonRecords, "JSON Microservice", "GoLang", "JSON Records")
Container(Messaging, "Messaging Microservice", "GoLang", "Messaging")
ContainerDb(AuthBackDatabase, "Auth Database", "PostgreSQL", "Stores ")
ContainerDb(DictionaryDatabase, "Dictionary Database", "PostgreSQL", "Stores ")
ContainerDb(DBDatabase, "DB Database", "PostgreSQL", "Stores ")
ContainerQueue(Kafka, "Kafka", "Apache Kafka", "Event bus")
}

Rel(user, UI, "Uses the system")
Rel(UI, AuthFront, "Auth the system")
Rel(UI, APIGateway, "Uses the system")
Rel(APIGateway, APIDatabase, "")
Rel(AuthFront, AuthFrontDatabase, "Reads user, password and roles")
Rel_U(AuthBackDatabase, AuthFrontDatabase, "Replication")
Rel_D(AuthFront, AuthBack, "gRPC Writes user, password and roles")
Rel_D(APIGateway, Dictionary, "gRPC integration")
Rel_D(APIGateway, JsonRecords, "gRPC integration")
Rel_U(Messaging, APIGateway, "gRPC stream")
Rel_D(AuthBack, AuthBackDatabase, "Reads/Writes data")
Rel_D(Debezium, Kafka, "Produce messages")
Rel_D(Dictionary, DictionaryDatabase, "Reads/Writes data")
Rel_D(JsonRecords, DBDatabase, "Reads/Writes data")
Rel_D(Messaging, Kafka, "Consume messages")
Rel_U(Debezium, APIGateway, "gRPC events")
Rel_U(AuthBackDatabase, Debezium, "Replication")
Rel_U(DictionaryDatabase, Debezium, "Replication")
Rel_U(DBDatabase, Debezium, "Replication")

Lay_D(AuthBack, AuthBackDatabase)
Lay_D(APIDatabase, AuthBack)
Lay_D(DayBookFrontEnd, DayBookBackEnd)

@enduml
35 changes: 35 additions & 0 deletions docs/01-Context.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
@startuml

!include C4.puml
!include C4_Context.puml
!include C4_Container.puml
!include C4_Component.puml

LAYOUT_WITH_LEGEND()

title DayBook System Context Diagram

top to bottom direction

Person(admin, "Admin", "A admin of the DayBook")
Person_Ext(user, "User", "A user of the DayBook")

Enterprise_Boundary(c0, "DayBook FrontEnd") {
System(DayBookUISystem, "DayBook UI", "DayBook FrontEnd")
System(DayBookAPISystem, "DayBook API", "DayBook FrontEnd")
}

Enterprise_Boundary(c1, "DayBook BackEnd") {
System(DayBookBackendSystem, "DayBook Backend", "DayBook BackEnd")
SystemDb(DayBookDbSystem, "DB", "DayBook BackEnd")
SystemQueue(DayBookKafkaSystem, "Kafka", "DayBook BackEnd")
}

Rel_R(admin, DayBookUISystem, "Admin the system ")
Rel_L(user, DayBookUISystem, " Uses the system")
Rel(DayBookUISystem, DayBookAPISystem, "Uses RESTful")
Rel(DayBookAPISystem, DayBookBackendSystem, "Uses gRPC")
Rel(DayBookBackendSystem, DayBookDbSystem, "Uses DB")
Rel(DayBookBackendSystem, DayBookKafkaSystem, "Messaging")

@enduml
1 change: 1 addition & 0 deletions docs/01-DayBook_System_Container_Diagram.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/01-DayBook_System_Context_Diagram.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading