@eventcatalog/create-eventcatalog 3.0.0 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -22466,7 +22466,7 @@ var import_os2 = __toESM(require("os"));
|
|
|
22466
22466
|
var package_default = {
|
|
22467
22467
|
name: "@eventcatalog/create-eventcatalog",
|
|
22468
22468
|
description: "Create EventCatalog with one command",
|
|
22469
|
-
version: "3.0.
|
|
22469
|
+
version: "3.0.2",
|
|
22470
22470
|
bin: {
|
|
22471
22471
|
"create-catalog": "./dist/index.js"
|
|
22472
22472
|
},
|
package/package.json
CHANGED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: E-Commerce
|
|
3
|
+
name: E-Commerce
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
owners:
|
|
6
|
+
- dboyne
|
|
7
|
+
- full-stack
|
|
8
|
+
domains:
|
|
9
|
+
- id: Orders
|
|
10
|
+
- id: Payment
|
|
11
|
+
- id: Subscription
|
|
12
|
+
badges:
|
|
13
|
+
- content: Core domain
|
|
14
|
+
backgroundColor: blue
|
|
15
|
+
textColor: blue
|
|
16
|
+
icon: RectangleGroupIcon
|
|
17
|
+
- content: Business Critical
|
|
18
|
+
backgroundColor: yellow
|
|
19
|
+
textColor: yellow
|
|
20
|
+
icon: ShieldCheckIcon
|
|
21
|
+
|
|
22
|
+
resourceGroups:
|
|
23
|
+
- id: related-resources
|
|
24
|
+
title: Core FlowMart Services
|
|
25
|
+
items:
|
|
26
|
+
- id: InventoryService
|
|
27
|
+
type: service
|
|
28
|
+
- id: OrdersService
|
|
29
|
+
type: service
|
|
30
|
+
- id: NotificationService
|
|
31
|
+
type: service
|
|
32
|
+
- id: ShippingService
|
|
33
|
+
type: service
|
|
34
|
+
- id: CustomerService
|
|
35
|
+
type: service
|
|
36
|
+
- id: PaymentService
|
|
37
|
+
type: service
|
|
38
|
+
- id: AnalyticsService
|
|
39
|
+
type: service
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
import Footer from '@catalog/components/footer.astro';
|
|
43
|
+
|
|
44
|
+
The E-Commerce domain is the core business domain of FlowMart, our modern digital marketplace. This domain orchestrates all critical business operations from product discovery to order fulfillment, handling millions of transactions monthly across our global customer base.
|
|
45
|
+
|
|
46
|
+
<Tiles>
|
|
47
|
+
<Tile
|
|
48
|
+
icon="UserGroupIcon"
|
|
49
|
+
href="/docs/teams/full-stack"
|
|
50
|
+
title="Engineering Support"
|
|
51
|
+
description="Questions? Contact our full-stack team for technical support"
|
|
52
|
+
/>
|
|
53
|
+
<Tile
|
|
54
|
+
icon="RectangleGroupIcon"
|
|
55
|
+
href={`/visualiser/domains/${frontmatter.id}/${frontmatter.version}`}
|
|
56
|
+
title="Domain Architecture"
|
|
57
|
+
description="Explore our domain structure and service interactions"
|
|
58
|
+
/>
|
|
59
|
+
</Tiles>
|
|
60
|
+
|
|
61
|
+
## Domain Overview
|
|
62
|
+
|
|
63
|
+
FlowMart's E-Commerce domain is built on event-driven microservices architecture, enabling:
|
|
64
|
+
- Real-time inventory management across multiple warehouses
|
|
65
|
+
- Seamless payment processing with multiple providers
|
|
66
|
+
- Smart order routing and fulfillment
|
|
67
|
+
- Personalized customer notifications
|
|
68
|
+
- Subscription-based shopping experiences
|
|
69
|
+
- Advanced fraud detection and prevention
|
|
70
|
+
|
|
71
|
+
## Sub domains
|
|
72
|
+
|
|
73
|
+
The E-Commerce domain is built on the following sub domains:
|
|
74
|
+
|
|
75
|
+
- <ResourceLink id="Orders" type="domain">Orders</ResourceLink> - Core domain for order management
|
|
76
|
+
- <ResourceLink id="Payment" type="domain">Payment</ResourceLink> - A generic domain for payment processing using Stripe as a payment provider
|
|
77
|
+
- <ResourceLink id="Subscription" type="domain">Subscription</ResourceLink> - Generic subscription domain handling users subscriptions
|
|
78
|
+
|
|
79
|
+
## Target Architecture (Event Storming Results)
|
|
80
|
+
|
|
81
|
+
Our target architecture was defined through collaborative event storming sessions with product, engineering, and business stakeholders. This represents our vision for FlowMart's commerce capabilities.
|
|
82
|
+
|
|
83
|
+
<Miro boardId="uXjVIHCImos=/" moveToWidget="3074457347671667709" edit={false} />
|
|
84
|
+
|
|
85
|
+
## Current Production Architecture
|
|
86
|
+
|
|
87
|
+
Our current event-driven architecture powering FlowMart's shopping experience:
|
|
88
|
+
|
|
89
|
+
<NodeGraph />
|
|
90
|
+
|
|
91
|
+
### Order Processing Flow
|
|
92
|
+
|
|
93
|
+
```mermaid
|
|
94
|
+
sequenceDiagram
|
|
95
|
+
participant Customer
|
|
96
|
+
participant OrdersService
|
|
97
|
+
participant InventoryService
|
|
98
|
+
participant PaymentService
|
|
99
|
+
participant NotificationService
|
|
100
|
+
participant ShippingService
|
|
101
|
+
|
|
102
|
+
Customer->>OrdersService: Place Order
|
|
103
|
+
OrdersService->>InventoryService: Check Stock Availability
|
|
104
|
+
InventoryService-->>OrdersService: Stock Confirmed
|
|
105
|
+
OrdersService->>PaymentService: Process Payment
|
|
106
|
+
PaymentService-->>OrdersService: Payment Successful
|
|
107
|
+
OrdersService->>InventoryService: Reserve Inventory
|
|
108
|
+
OrdersService->>ShippingService: Create Shipping Label
|
|
109
|
+
ShippingService-->>OrdersService: Shipping Label Generated
|
|
110
|
+
OrdersService->>NotificationService: Send Order Confirmation
|
|
111
|
+
NotificationService-->>Customer: Order & Tracking Details
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Key Business Flows
|
|
115
|
+
|
|
116
|
+
### Subscription Management
|
|
117
|
+
Our subscription service powers FlowMart's popular "Subscribe & Save" feature:
|
|
118
|
+
|
|
119
|
+
<Flow id="CancelSubscription" version="latest" includeKey={false} />
|
|
120
|
+
|
|
121
|
+
### Payment Processing
|
|
122
|
+
Secure, multi-provider payment processing with fraud detection:
|
|
123
|
+
|
|
124
|
+
<Flow id="PaymentFlow" version="latest" includeKey={false} />
|
|
125
|
+
|
|
126
|
+
## Core Services
|
|
127
|
+
|
|
128
|
+
These services form the backbone of FlowMart's e-commerce operations:
|
|
129
|
+
|
|
130
|
+
<ResourceGroupTable
|
|
131
|
+
id="related-resources"
|
|
132
|
+
limit={7}
|
|
133
|
+
showOwners={true}
|
|
134
|
+
description="Essential services powering our e-commerce platform"
|
|
135
|
+
/>
|
|
136
|
+
|
|
137
|
+
## Performance SLAs
|
|
138
|
+
|
|
139
|
+
- Order Processing: < 2 seconds
|
|
140
|
+
- Payment Processing: < 3 seconds
|
|
141
|
+
- Inventory Updates: Real-time
|
|
142
|
+
- Notification Delivery: < 30 seconds
|
|
143
|
+
|
|
144
|
+
## Monitoring & Alerts
|
|
145
|
+
|
|
146
|
+
- Real-time order volume monitoring
|
|
147
|
+
- Payment gateway health checks
|
|
148
|
+
- Inventory level alerts
|
|
149
|
+
- Customer experience metrics
|
|
150
|
+
- System performance dashboards
|
|
151
|
+
|
|
152
|
+
<Footer />
|
|
@@ -7,35 +7,51 @@ owners:
|
|
|
7
7
|
- full-stack
|
|
8
8
|
services:
|
|
9
9
|
- id: InventoryService
|
|
10
|
-
- id: NotificationService
|
|
11
10
|
- id: OrdersService
|
|
12
|
-
- id:
|
|
11
|
+
- id: NotificationService
|
|
12
|
+
- id: ShippingService
|
|
13
13
|
badges:
|
|
14
|
-
- content:
|
|
14
|
+
- content: Subdomain
|
|
15
15
|
backgroundColor: blue
|
|
16
16
|
textColor: blue
|
|
17
|
+
icon: RectangleGroupIcon
|
|
18
|
+
|
|
19
|
+
resourceGroups:
|
|
20
|
+
- id: related-resources
|
|
21
|
+
title: Core resources
|
|
22
|
+
items:
|
|
23
|
+
- id: InventoryService
|
|
24
|
+
type: service
|
|
25
|
+
- id: OrdersService
|
|
26
|
+
type: service
|
|
27
|
+
- id: NotificationService
|
|
28
|
+
type: service
|
|
29
|
+
- id: ShippingService
|
|
30
|
+
type: service
|
|
17
31
|
---
|
|
18
32
|
|
|
19
33
|
import Footer from '@catalog/components/footer.astro';
|
|
20
34
|
|
|
21
|
-
## Overview
|
|
22
35
|
|
|
23
|
-
<Admonition type="warning">Please ensure all services are updated to the latest version for compatibility and performance improvements.</Admonition>
|
|
24
36
|
|
|
25
|
-
|
|
37
|
+
:::warning
|
|
26
38
|
|
|
39
|
+
Please ensure all services are **updated** to the latest version for compatibility and performance improvements.
|
|
40
|
+
:::
|
|
41
|
+
|
|
42
|
+
The Orders domain handles all operations related to customer orders, from creation to fulfillment. This documentation provides an overview of the events and services involved in the Orders domain, helping developers and stakeholders understand the event-driven architecture
|
|
27
43
|
|
|
28
44
|
<Tiles >
|
|
29
45
|
<Tile icon="UserGroupIcon" href="/docs/teams/full-stack" title="Contact the team" description="Any questions? Feel free to contact the owners" />
|
|
30
|
-
<Tile icon="RectangleGroupIcon" href={`/visualiser/domains/${frontmatter.id}/${frontmatter.version}`} title={`${frontmatter.services.length} services
|
|
46
|
+
<Tile icon="RectangleGroupIcon" href={`/visualiser/domains/${frontmatter.id}/${frontmatter.version}`} title={`${frontmatter.services.length} services`} description="This domain contains the following services." />
|
|
31
47
|
</Tiles>
|
|
32
48
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
## Bounded context
|
|
49
|
+
### Architecture for the Orders domain
|
|
36
50
|
|
|
37
51
|
<NodeGraph />
|
|
38
52
|
|
|
53
|
+
<MessageTable format="all" limit={4} showChannels={true} title="Messages in/out of the domain" />
|
|
54
|
+
|
|
39
55
|
### Order example (sequence diagram)
|
|
40
56
|
|
|
41
57
|
```mermaid
|
|
@@ -67,4 +83,6 @@ Documented flow when a user makes a payment within the order domain
|
|
|
67
83
|
|
|
68
84
|
<Flow id="PaymentFlow" version="latest" includeKey={false} />
|
|
69
85
|
|
|
86
|
+
<ResourceGroupTable id="related-resources" limit={4} showOwners={true} title="Core resources for the Orders domain" description="Resources that are related to the Orders domain, you may find them useful" />
|
|
87
|
+
|
|
70
88
|
<Footer />
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "SubscriptionRenewed"
|
|
3
|
+
name: "Subscription Renewal Flow"
|
|
4
|
+
version: "1.0.0"
|
|
5
|
+
summary: "Business flow for automatic subscription renewals and related processes"
|
|
6
|
+
steps:
|
|
7
|
+
- id: "renewal_timer_triggered"
|
|
8
|
+
title: "Renewal Period Reached"
|
|
9
|
+
custom:
|
|
10
|
+
title: "Renewal Timer"
|
|
11
|
+
color: "orange"
|
|
12
|
+
icon: "ClockIcon"
|
|
13
|
+
type: "Scheduler"
|
|
14
|
+
summary: "Automated timer triggers the subscription renewal process"
|
|
15
|
+
height: 8
|
|
16
|
+
properties:
|
|
17
|
+
subscription_id: "sub_12345678"
|
|
18
|
+
renewal_type: "Automatic"
|
|
19
|
+
billing_cycle: "Monthly"
|
|
20
|
+
next_billing_date: "2024-08-01"
|
|
21
|
+
menu:
|
|
22
|
+
- label: "View scheduler configuration"
|
|
23
|
+
url: "https://docs.example.com/scheduler"
|
|
24
|
+
- label: "Subscription timing documentation"
|
|
25
|
+
url: "https://docs.example.com/subscription-timing"
|
|
26
|
+
next_step:
|
|
27
|
+
id: "check_subscription_status"
|
|
28
|
+
label: "Verify subscription status"
|
|
29
|
+
|
|
30
|
+
- id: "check_subscription_status"
|
|
31
|
+
title: "Check Subscription Status"
|
|
32
|
+
service:
|
|
33
|
+
id: "SubscriptionService"
|
|
34
|
+
version: "0.0.1"
|
|
35
|
+
next_steps:
|
|
36
|
+
- id: "payment_approval_check"
|
|
37
|
+
label: "Subscription active, proceed to payment"
|
|
38
|
+
- id: "subscription_expired"
|
|
39
|
+
label: "Subscription has expired"
|
|
40
|
+
- id: "subscription_canceled"
|
|
41
|
+
label: "Subscription was canceled"
|
|
42
|
+
|
|
43
|
+
- id: "subscription_expired"
|
|
44
|
+
title: "Subscription Expired"
|
|
45
|
+
type: "node"
|
|
46
|
+
next_step:
|
|
47
|
+
id: "send_renewal_notification"
|
|
48
|
+
label: "Notify customer to renew"
|
|
49
|
+
|
|
50
|
+
- id: "subscription_canceled"
|
|
51
|
+
title: "Subscription Canceled"
|
|
52
|
+
type: "node"
|
|
53
|
+
next_step:
|
|
54
|
+
id: "send_reactivation_offer"
|
|
55
|
+
label: "Send special reactivation offer"
|
|
56
|
+
|
|
57
|
+
- id: "send_renewal_notification"
|
|
58
|
+
title: "Send Renewal Notification"
|
|
59
|
+
service:
|
|
60
|
+
id: "NotificationService"
|
|
61
|
+
version: "0.0.2"
|
|
62
|
+
next_step:
|
|
63
|
+
id: "await_customer_action"
|
|
64
|
+
label: "Wait for customer response"
|
|
65
|
+
|
|
66
|
+
- id: "send_reactivation_offer"
|
|
67
|
+
title: "Send Reactivation Offer"
|
|
68
|
+
service:
|
|
69
|
+
id: "NotificationService"
|
|
70
|
+
version: "0.0.2"
|
|
71
|
+
next_step:
|
|
72
|
+
id: "await_customer_action"
|
|
73
|
+
label: "Wait for customer response"
|
|
74
|
+
|
|
75
|
+
- id: "await_customer_action"
|
|
76
|
+
title: "Await Customer Action"
|
|
77
|
+
custom:
|
|
78
|
+
title: "Customer Decision Point"
|
|
79
|
+
color: "purple"
|
|
80
|
+
icon: "UserIcon"
|
|
81
|
+
type: "Decision"
|
|
82
|
+
height: 8
|
|
83
|
+
summary: "Waiting period for customer to take action on notification"
|
|
84
|
+
properties:
|
|
85
|
+
timeout_period: "7 days"
|
|
86
|
+
options: "Renew, Upgrade, Cancel, Ignore"
|
|
87
|
+
next_steps:
|
|
88
|
+
- id: "manual_renewal_flow"
|
|
89
|
+
label: "Customer manually renews"
|
|
90
|
+
- id: "flow_ends"
|
|
91
|
+
label: "No action taken"
|
|
92
|
+
|
|
93
|
+
- id: "manual_renewal_flow"
|
|
94
|
+
title: "Manual Renewal Flow"
|
|
95
|
+
type: "node"
|
|
96
|
+
next_step:
|
|
97
|
+
id: "payment_initiated"
|
|
98
|
+
label: "Process payment"
|
|
99
|
+
|
|
100
|
+
- id: "payment_approval_check"
|
|
101
|
+
title: "Check Payment Approval"
|
|
102
|
+
message:
|
|
103
|
+
id: "GetPaymentStatus"
|
|
104
|
+
version: "0.0.1"
|
|
105
|
+
next_steps:
|
|
106
|
+
- id: "payment_initiated"
|
|
107
|
+
label: "Payment approved, proceed with billing"
|
|
108
|
+
- id: "payment_method_invalid"
|
|
109
|
+
label: "Invalid payment method"
|
|
110
|
+
|
|
111
|
+
- id: "payment_method_invalid"
|
|
112
|
+
title: "Invalid Payment Method"
|
|
113
|
+
type: "node"
|
|
114
|
+
next_step:
|
|
115
|
+
id: "request_payment_update"
|
|
116
|
+
label: "Request updated payment method"
|
|
117
|
+
|
|
118
|
+
- id: "request_payment_update"
|
|
119
|
+
title: "Request Payment Update"
|
|
120
|
+
service:
|
|
121
|
+
id: "NotificationService"
|
|
122
|
+
version: "0.0.2"
|
|
123
|
+
next_step:
|
|
124
|
+
id: "await_updated_payment"
|
|
125
|
+
label: "Wait for payment update"
|
|
126
|
+
|
|
127
|
+
- id: "await_updated_payment"
|
|
128
|
+
title: "Await Updated Payment Method"
|
|
129
|
+
actor:
|
|
130
|
+
name: "Customer"
|
|
131
|
+
next_steps:
|
|
132
|
+
- id: "payment_initiated"
|
|
133
|
+
label: "Payment method updated"
|
|
134
|
+
- id: "subscription_grace_period"
|
|
135
|
+
label: "No update received"
|
|
136
|
+
|
|
137
|
+
- id: "subscription_grace_period"
|
|
138
|
+
title: "Grace Period"
|
|
139
|
+
custom:
|
|
140
|
+
title: "Subscription Grace Period"
|
|
141
|
+
color: "yellow"
|
|
142
|
+
icon: "ShieldExclamationIcon"
|
|
143
|
+
type: "Timer"
|
|
144
|
+
summary: "Limited period where subscription remains active despite payment failure"
|
|
145
|
+
properties:
|
|
146
|
+
duration: "7 days"
|
|
147
|
+
status: "At risk"
|
|
148
|
+
next_steps:
|
|
149
|
+
- id: "payment_initiated"
|
|
150
|
+
label: "Payment updated during grace period"
|
|
151
|
+
- id: "subscription_suspended"
|
|
152
|
+
label: "Grace period expired"
|
|
153
|
+
|
|
154
|
+
- id: "subscription_suspended"
|
|
155
|
+
title: "Subscription Suspended"
|
|
156
|
+
message:
|
|
157
|
+
id: "UserSubscriptionCancelled"
|
|
158
|
+
version: "0.0.1"
|
|
159
|
+
next_step:
|
|
160
|
+
id: "send_suspension_notification"
|
|
161
|
+
label: "Notify customer of suspension"
|
|
162
|
+
|
|
163
|
+
- id: "send_suspension_notification"
|
|
164
|
+
title: "Send Suspension Notification"
|
|
165
|
+
service:
|
|
166
|
+
id: "NotificationService"
|
|
167
|
+
version: "0.0.2"
|
|
168
|
+
next_step:
|
|
169
|
+
id: "flow_ends"
|
|
170
|
+
label: "Flow ends"
|
|
171
|
+
|
|
172
|
+
- id: "payment_initiated"
|
|
173
|
+
title: "Process Payment"
|
|
174
|
+
message:
|
|
175
|
+
id: "PaymentInitiated"
|
|
176
|
+
version: "0.0.1"
|
|
177
|
+
next_step:
|
|
178
|
+
id: "payment_gateway"
|
|
179
|
+
label: "Send to payment gateway"
|
|
180
|
+
|
|
181
|
+
- id: "payment_gateway"
|
|
182
|
+
title: "Payment Gateway"
|
|
183
|
+
externalSystem:
|
|
184
|
+
name: "Stripe"
|
|
185
|
+
summary: "3rd party payment processor"
|
|
186
|
+
url: "https://stripe.com/"
|
|
187
|
+
next_steps:
|
|
188
|
+
- id: "payment_processed"
|
|
189
|
+
label: "Payment successful"
|
|
190
|
+
- id: "payment_failed"
|
|
191
|
+
label: "Payment failed"
|
|
192
|
+
|
|
193
|
+
- id: "payment_failed"
|
|
194
|
+
title: "Payment Failed"
|
|
195
|
+
type: "node"
|
|
196
|
+
next_step:
|
|
197
|
+
id: "retry_payment"
|
|
198
|
+
label: "Retry payment"
|
|
199
|
+
|
|
200
|
+
- id: "retry_payment"
|
|
201
|
+
title: "Retry Payment"
|
|
202
|
+
custom:
|
|
203
|
+
title: "Payment Retry Logic"
|
|
204
|
+
color: "red"
|
|
205
|
+
icon: "ArrowPathIcon"
|
|
206
|
+
type: "Processor"
|
|
207
|
+
summary: "Automated retry logic for failed payments"
|
|
208
|
+
properties:
|
|
209
|
+
max_attempts: 3
|
|
210
|
+
backoff_interval: "24 hours"
|
|
211
|
+
current_attempt: 1
|
|
212
|
+
next_steps:
|
|
213
|
+
- id: "payment_initiated"
|
|
214
|
+
label: "Retry payment"
|
|
215
|
+
- id: "subscription_grace_period"
|
|
216
|
+
label: "Max retries exceeded"
|
|
217
|
+
|
|
218
|
+
- id: "payment_processed"
|
|
219
|
+
title: "Payment Processed"
|
|
220
|
+
message:
|
|
221
|
+
id: "PaymentProcessed"
|
|
222
|
+
version: "1.0.0"
|
|
223
|
+
next_step:
|
|
224
|
+
id: "update_subscription_status"
|
|
225
|
+
label: "Update subscription"
|
|
226
|
+
|
|
227
|
+
- id: "update_subscription_status"
|
|
228
|
+
title: "Update Subscription"
|
|
229
|
+
service:
|
|
230
|
+
id: "SubscriptionService"
|
|
231
|
+
version: "0.0.1"
|
|
232
|
+
next_step:
|
|
233
|
+
id: "send_renewal_confirmation"
|
|
234
|
+
label: "Confirm renewal to customer"
|
|
235
|
+
|
|
236
|
+
- id: "send_renewal_confirmation"
|
|
237
|
+
title: "Send Renewal Confirmation"
|
|
238
|
+
service:
|
|
239
|
+
id: "NotificationService"
|
|
240
|
+
version: "0.0.2"
|
|
241
|
+
next_step:
|
|
242
|
+
id: "analyze_customer_usage"
|
|
243
|
+
label: "Analyze customer usage patterns"
|
|
244
|
+
|
|
245
|
+
- id: "analyze_customer_usage"
|
|
246
|
+
title: "Analyze Usage Patterns"
|
|
247
|
+
custom:
|
|
248
|
+
title: "Usage Analytics"
|
|
249
|
+
color: "blue"
|
|
250
|
+
icon: "ChartBarIcon"
|
|
251
|
+
type: "Analytics"
|
|
252
|
+
summary: "Analyze customer usage patterns to identify upsell opportunities"
|
|
253
|
+
properties:
|
|
254
|
+
metrics_analyzed: "Feature usage, Resource consumption, Access patterns"
|
|
255
|
+
lookback_period: "90 days"
|
|
256
|
+
menu:
|
|
257
|
+
- label: "View analytics dashboard"
|
|
258
|
+
url: "https://analytics.example.com/subscriptions"
|
|
259
|
+
- label: "Documentation"
|
|
260
|
+
url: "https://docs.example.com/analytics"
|
|
261
|
+
next_steps:
|
|
262
|
+
- id: "send_upgrade_recommendation"
|
|
263
|
+
label: "Usage suggests upgrade opportunity"
|
|
264
|
+
- id: "flow_ends"
|
|
265
|
+
label: "No upgrade opportunity identified"
|
|
266
|
+
|
|
267
|
+
- id: "send_upgrade_recommendation"
|
|
268
|
+
title: "Send Upgrade Recommendation"
|
|
269
|
+
service:
|
|
270
|
+
id: "NotificationService"
|
|
271
|
+
version: "0.0.2"
|
|
272
|
+
next_step:
|
|
273
|
+
id: "flow_ends"
|
|
274
|
+
label: "Flow completed"
|
|
275
|
+
|
|
276
|
+
- id: "flow_ends"
|
|
277
|
+
title: "Flow Completed"
|
|
278
|
+
type: "node"
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## Subscription Renewal Flow
|
|
283
|
+
|
|
284
|
+
This flow documents the process of automatic subscription renewals, including handling various edge cases such as payment failures, expired subscriptions, and customer interactions.
|
|
285
|
+
|
|
286
|
+
<NodeGraph />
|
|
287
|
+
|
|
288
|
+
### Key Components
|
|
289
|
+
|
|
290
|
+
* **Automatic Renewal Process**: Triggered by a scheduled timer when the subscription renewal period is reached
|
|
291
|
+
* **Payment Processing**: Integration with payment gateway and handling of payment failures
|
|
292
|
+
* **Customer Notifications**: Various notifications sent throughout the process
|
|
293
|
+
* **Grace Period Handling**: Special handling when payments fail with a grace period before subscription suspension
|
|
294
|
+
* **Usage Analytics**: Analysis of customer usage patterns to identify upgrade opportunities
|
|
295
|
+
|
|
296
|
+
### Business Rules
|
|
297
|
+
|
|
298
|
+
1. Subscriptions are renewed automatically unless explicitly canceled
|
|
299
|
+
2. Failed payments trigger a retry process (up to 3 attempts)
|
|
300
|
+
3. Customers receive a 7-day grace period before subscription suspension
|
|
301
|
+
4. Usage patterns are analyzed to provide personalized upgrade recommendations
|