Repository navigation
Expand file tree
/
Copy path04-commerce-platform.stack
More file actions
127 lines (100 loc) · 2.03 KB
/
Copy path04-commerce-platform.stack
File metadata and controls
127 lines (100 loc) · 2.03 KB
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
stack 1.0
diagram "Commerce platform" {
layout {
direction right
}
node customer "Customer" {
kind actor
}
group storefront "Storefront" {
node web "Web storefront" {
kind client
icon "web"
detail "Next.js"
}
node gateway "Edge gateway" {
icon "gateway"
}
}
group commerce "Commerce services" {
layout {
direction down
rank same [catalog, checkout]
order [catalog, checkout]
}
node catalog "Catalog API" {
detail "Products and pricing"
}
node checkout "Checkout API" {
detail "Order orchestration"
}
}
group asynchronous "Asynchronous processing" {
node events "Event bus" {
kind queue
}
node fulfillment "Fulfillment worker" {
kind worker
}
node notifications "Notification worker" {
kind worker
}
}
group data "Data" {
node products "Product database" {
kind database
icon "kind-database"
}
node orders "Order database" {
kind database
icon "kind-database"
}
node assets "Product media" {
kind storage
}
}
group partners "External systems" {
node payment "Payment provider" {
kind external
}
node email "Email provider" {
kind external
}
}
edge customer -> web "Browse and buy" {
kind request
}
edge web -> gateway "HTTPS" {
kind request
}
edge gateway -> catalog "Catalog requests" {
kind request
}
edge gateway -> checkout "Checkout requests" {
kind request
}
edge catalog -> products "SQL" {
kind data
}
edge catalog -> assets "Media URLs" {
kind data
}
edge checkout -> orders "Transactions" {
kind data
}
edge checkout -> payment "Payment API" {
kind request
}
edge checkout -> events "OrderPlaced" {
kind event
}
edge events -> fulfillment "OrderPlaced" {
kind event
}
edge events -> notifications "OrderPlaced" {
kind event
}
edge notifications -> email "Send receipt" {
kind request
}
}