-
Notifications
You must be signed in to change notification settings - Fork 0
/
StructureDesing.plantuml
102 lines (85 loc) · 2.47 KB
/
StructureDesing.plantuml
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
100
101
102
@startuml Search & Navigation
actor User
[PostgreSQL DB]
node "API"{
[GET: ViewBasedSuggestion]
[GET: BrowsingHistory]
[DELETE: Product]
}
node "Common"{
package "Request"{
[DeleteBrowsingHistoryCommand]
[QueryBestSeller]
[QueryBrowsingHistory]
}
package "ViewModel"{
[ProductRecommendView]
[BrowsingHistoryView]
}
}
node "Web APP"{
package "Application"{
[Commands]
[Queries]
}
package "Persistence"{
[Generic Repository]
[Repositories]
package "Context" {
[Data Seeding]
[SearchNavigateContext]
[DbContext]
}
[Migrations]
}
package "Domain"{
' left to right direction
agent UserEntity
agent Category
agent Product
agent Order
agent Ordered_Items
agent ProductViewHistory
}
}
node "MicroServices" {
[StreamReader App]
[ViewProducer App]
}
' User and Common
[Common] <-- User : User Interacts with
' Common and API
[API] <-- [Request] : Request is sent
[ViewModel] <-- [API] : Response is got
' API End-Points
[GET: ViewBasedSuggestion] --> [Queries] : BestSeller Products
[GET: BrowsingHistory] --> [Queries] :Get last 10 products
[DELETE: Product] --> [Commands]
[viewHistory.json] <-- [ViewProducer App] : Reads from.
[Kafka] <-- [ViewProducer App] : PUSHs an event.
[StreamReader App] -->[Kafka] : POPs an event.
[StreamReader App] --> [PostgreSQL DB] : Writes View Event to DB
' Application
[Commands] ---> [Repositories] : Calls
[Queries] ---> [Repositories] : Calls
' Repositories to Domain
[UserEntity] <... [Repositories] : Includes
[Product] <... [Repositories] : Includes
[Category] <... [Repositories] : Includes
[Order] <... [Repositories] : Includes
[Ordered_Items] <... [Repositories] : Includes
[ProductViewHistory] <... [Repositories] : Includes
' SearchNavigateContext to Domain
[SearchNavigateContext] --> [DbContext] : Inherits from
[SearchNavigateContext] --> [UserEntity] : Includes
[SearchNavigateContext] --> [Product] : Includes
[SearchNavigateContext] --> [Category] : Includes
[SearchNavigateContext] --> [Order] : Includes
[SearchNavigateContext] --> [Ordered_Items] : Includes
[SearchNavigateContext] --> [ProductViewHistory]
' Other Persistence Members
[SearchNavigateContext] <- [Data Seeding] : Includes
[Generic Repository] <-- [Repositories] : Inherits from
[DbContext] <-- [Generic Repository] : Inherits from
[DbContext] --> [PostgreSQL DB] : Mutates, Queries, Inserts ...
@enduml