You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Do you want to use Redis as the target database for caching data?
11
+
whyAsk: |
12
+
RDI is specifically designed to keep Redis in sync with a primary database. If you don't need Redis as a cache, RDI is not the right tool.
13
+
answers:
14
+
no:
15
+
value: "No"
16
+
outcome:
17
+
label: "❌ RDI only works with Redis as the target database"
18
+
id: noRedisCache
19
+
sentiment: "negative"
20
+
yes:
21
+
value: "Yes"
22
+
nextQuestion: singleSource
23
+
singleSource:
24
+
text: |
25
+
Are you transferring data from a single source database?
26
+
whyAsk: |
27
+
RDI is designed to work with a single source database. Multiple sources or Active-Active replicas create conflicting change events.
28
+
answers:
29
+
no:
30
+
value: "No"
31
+
outcome:
32
+
label: "❌ RDI won't work with multiple source databases"
33
+
id: multipleSourcesOrActiveActive
34
+
sentiment: "negative"
35
+
yes:
36
+
value: "Yes"
37
+
nextQuestion: systemOfRecord
38
+
systemOfRecord:
39
+
text: |
40
+
Does your app always *write* to the source database and not to Redis?
41
+
whyAsk: |
42
+
RDI requires the source database to be the authoritative source of truth. If your app writes to Redis first, RDI won't work.
43
+
answers:
44
+
no:
45
+
value: "No"
46
+
outcome:
47
+
label: "❌ RDI doesn't support syncing data from Redis back to the source database"
48
+
id: notSystemOfRecord
49
+
sentiment: "negative"
50
+
yes:
51
+
value: "Yes"
52
+
nextQuestion: consistency
53
+
consistency:
54
+
text: |
55
+
Can your app tolerate eventual consistency in the Redis cache?
56
+
whyAsk: |
57
+
RDI provides eventual consistency, not immediate consistency. If your app needs real-time cache consistency or hard latency limits, RDI is not suitable.
58
+
answers:
59
+
no:
60
+
value: "No"
61
+
outcome:
62
+
label: "❌ RDI does not provide immediate cache consistency"
63
+
id: needsImmediate
64
+
sentiment: "negative"
65
+
yes:
66
+
value: "Yes"
67
+
nextQuestion: deployment
68
+
deployment:
69
+
text: |
70
+
Do you want a self-managed solution or an AWS-based solution?
71
+
whyAsk: |
72
+
RDI is available as a self-managed solution or as an AWS-based managed service. If you need a different deployment model, RDI may not be suitable.
73
+
answers:
74
+
no:
75
+
value: "No"
76
+
outcome:
77
+
label: "❌ RDI may not be suitable - check deployment options"
78
+
id: deploymentMismatch
79
+
sentiment: "negative"
80
+
yes:
81
+
value: "Yes"
82
+
nextQuestion: dataChangePattern
83
+
dataChangePattern:
84
+
text: |
85
+
Does your source data change frequently in small increments?
86
+
whyAsk: |
87
+
RDI captures changes from the database transaction log. Large batch transactions or ETL processes can cause RDI to fail.
88
+
answers:
89
+
no:
90
+
value: "No"
91
+
outcome:
92
+
label: "❌ RDI will fail with batch/ETL processes and large transactions"
93
+
id: batchProcessing
94
+
sentiment: "negative"
95
+
yes:
96
+
value: "Yes"
97
+
nextQuestion: changeRate
98
+
changeRate:
99
+
text: |
100
+
Are there fewer than 10K changes per second in the source database?
101
+
whyAsk: |
102
+
RDI has throughput limits. Exceeding these limits will cause processing failures and data loss.
103
+
answers:
104
+
no:
105
+
value: "No"
106
+
outcome:
107
+
label: "❌ RDI throughput limits will be exceeded"
108
+
id: exceedsChangeRate
109
+
sentiment: "negative"
110
+
yes:
111
+
value: "Yes"
112
+
nextQuestion: dataSize
113
+
dataSize:
114
+
text: |
115
+
Is your total data size smaller than 100GB?
116
+
whyAsk: |
117
+
RDI has practical limits on the total data size it can manage. Very large datasets may exceed these limits.
118
+
answers:
119
+
no:
120
+
value: "No"
121
+
outcome:
122
+
label: "❌ RDI may not be suitable - your data set is probably too large"
123
+
id: dataTooLarge
124
+
sentiment: "negative"
125
+
yes:
126
+
value: "Yes"
127
+
nextQuestion: joins
128
+
joins:
129
+
text: |
130
+
Do you need to perform join operations on data from several tables into a nested Redis JSON object?
131
+
whyAsk: |
132
+
RDI has limitations with complex join operations. If you need to combine data from multiple tables into nested structures, you may need custom transformations.
133
+
answers:
134
+
yes:
135
+
value: "Yes"
136
+
outcome:
137
+
label: "❌ RDI may not be suitable - complex joins are not well supported"
138
+
id: complexJoins
139
+
sentiment: "negative"
140
+
no:
141
+
value: "No"
142
+
nextQuestion: transformations
143
+
transformations:
144
+
text: |
145
+
Does RDI support the data transformations you need for your app?
146
+
whyAsk: |
147
+
RDI provides built-in transformations, but if you need custom logic beyond what RDI supports, you may need a different approach.
148
+
answers:
149
+
no:
150
+
value: "No"
151
+
outcome:
152
+
label: "❌ RDI may not be able to perform the required data transformations"
153
+
id: unsupportedTransformations
154
+
sentiment: "negative"
155
+
yes:
156
+
value: "Yes"
157
+
nextQuestion: adminReview
158
+
adminReview:
159
+
text: |
160
+
Has your database administrator reviewed RDI's requirements for the source database
161
+
and confirmed they are acceptable?
162
+
whyAsk: |
163
+
RDI has specific requirements for the source database (binary logging, permissions, etc.). Your DBA must confirm these are acceptable before proceeding.
164
+
answers:
165
+
no:
166
+
value: "No"
167
+
outcome:
168
+
label: "❌ RDI requirements for the source database can't be met"
Copy file name to clipboardExpand all lines: content/embeds/rdi-when-to-use.md
-181Lines changed: 0 additions & 181 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,184 +40,3 @@ RDI is not a good fit when:
40
40
- You need to write data to multiple targets from the same pipeline (Redis supports other
41
41
ways to replicate data across Redis databases such as replicaOf and Active Active).
42
42
- Your database administrator has rejected RDI's requirements for the source database.
43
-
44
-
### Decision tree for using RDI
45
-
46
-
Use the decision tree below to determine whether RDI is a good fit for your architecture:
47
-
48
-
```decision-tree {id="when-to-use-rdi"}
49
-
id: when-to-use-rdi
50
-
scope: rdi
51
-
indentWidth: 25
52
-
rootQuestion: cacheTarget
53
-
questions:
54
-
cacheTarget:
55
-
text: |
56
-
Do you want to use Redis as the target database for caching data?
57
-
whyAsk: |
58
-
RDI is specifically designed to keep Redis in sync with a primary database. If you don't need Redis as a cache, RDI is not the right tool.
59
-
answers:
60
-
no:
61
-
value: "No"
62
-
outcome:
63
-
label: "❌ RDI only works with Redis as the target database"
64
-
id: noRedisCache
65
-
sentiment: "negative"
66
-
yes:
67
-
value: "Yes"
68
-
nextQuestion: singleSource
69
-
singleSource:
70
-
text: |
71
-
Are you transferring data from a single source database?
72
-
whyAsk: |
73
-
RDI is designed to work with a single source database. Multiple sources or Active-Active replicas create conflicting change events.
74
-
answers:
75
-
no:
76
-
value: "No"
77
-
outcome:
78
-
label: "❌ RDI won't work with multiple source databases"
79
-
id: multipleSourcesOrActiveActive
80
-
sentiment: "negative"
81
-
yes:
82
-
value: "Yes"
83
-
nextQuestion: systemOfRecord
84
-
systemOfRecord:
85
-
text: |
86
-
Does your app always *write* to the source database and not to Redis?
87
-
whyAsk: |
88
-
RDI requires the source database to be the authoritative source of truth. If your app writes to Redis first, RDI won't work.
89
-
answers:
90
-
no:
91
-
value: "No"
92
-
outcome:
93
-
label: "❌ RDI doesn't support syncing data from Redis back to the source database"
94
-
id: notSystemOfRecord
95
-
sentiment: "negative"
96
-
yes:
97
-
value: "Yes"
98
-
nextQuestion: consistency
99
-
consistency:
100
-
text: |
101
-
Can your app tolerate eventual consistency in the Redis cache?
102
-
whyAsk: |
103
-
RDI provides eventual consistency, not immediate consistency. If your app needs real-time cache consistency or hard latency limits, RDI is not suitable.
104
-
answers:
105
-
no:
106
-
value: "No"
107
-
outcome:
108
-
label: "❌ RDI does not provide immediate cache consistency"
109
-
id: needsImmediate
110
-
sentiment: "negative"
111
-
yes:
112
-
value: "Yes"
113
-
nextQuestion: deployment
114
-
deployment:
115
-
text: |
116
-
Do you want a self-managed solution or an AWS-based solution?
117
-
whyAsk: |
118
-
RDI is available as a self-managed solution or as an AWS-based managed service. If you need a different deployment model, RDI may not be suitable.
119
-
answers:
120
-
no:
121
-
value: "No"
122
-
outcome:
123
-
label: "❌ RDI may not be suitable - check deployment options"
124
-
id: deploymentMismatch
125
-
sentiment: "negative"
126
-
yes:
127
-
value: "Yes"
128
-
nextQuestion: dataChangePattern
129
-
dataChangePattern:
130
-
text: |
131
-
Does your source data change frequently in small increments?
132
-
whyAsk: |
133
-
RDI captures changes from the database transaction log. Large batch transactions or ETL processes can cause RDI to fail.
134
-
answers:
135
-
no:
136
-
value: "No"
137
-
outcome:
138
-
label: "❌ RDI will fail with batch/ETL processes and large transactions"
139
-
id: batchProcessing
140
-
sentiment: "negative"
141
-
yes:
142
-
value: "Yes"
143
-
nextQuestion: changeRate
144
-
changeRate:
145
-
text: |
146
-
Are there fewer than 10K changes per second in the source database?
147
-
whyAsk: |
148
-
RDI has throughput limits. Exceeding these limits will cause processing failures and data loss.
149
-
answers:
150
-
no:
151
-
value: "No"
152
-
outcome:
153
-
label: "❌ RDI throughput limits will be exceeded"
154
-
id: exceedsChangeRate
155
-
sentiment: "negative"
156
-
yes:
157
-
value: "Yes"
158
-
nextQuestion: dataSize
159
-
dataSize:
160
-
text: |
161
-
Is your total data size smaller than 100GB?
162
-
whyAsk: |
163
-
RDI has practical limits on the total data size it can manage. Very large datasets may exceed these limits.
164
-
answers:
165
-
no:
166
-
value: "No"
167
-
outcome:
168
-
label: "❌ RDI may not be suitable - your data set is probably too large"
169
-
id: dataTooLarge
170
-
sentiment: "negative"
171
-
yes:
172
-
value: "Yes"
173
-
nextQuestion: joins
174
-
joins:
175
-
text: |
176
-
Do you need to perform join operations on data from several tables into a nested Redis JSON object?
177
-
whyAsk: |
178
-
RDI has limitations with complex join operations. If you need to combine data from multiple tables into nested structures, you may need custom transformations.
179
-
answers:
180
-
yes:
181
-
value: "Yes"
182
-
outcome:
183
-
label: "❌ RDI may not be suitable - complex joins are not well supported"
184
-
id: complexJoins
185
-
sentiment: "negative"
186
-
no:
187
-
value: "No"
188
-
nextQuestion: transformations
189
-
transformations:
190
-
text: |
191
-
Does RDI support the data transformations you need for your app?
192
-
whyAsk: |
193
-
RDI provides built-in transformations, but if you need custom logic beyond what RDI supports, you may need a different approach.
194
-
answers:
195
-
no:
196
-
value: "No"
197
-
outcome:
198
-
label: "❌ RDI may not be able to perform the required data transformations"
199
-
id: unsupportedTransformations
200
-
sentiment: "negative"
201
-
yes:
202
-
value: "Yes"
203
-
nextQuestion: adminReview
204
-
adminReview:
205
-
text: |
206
-
Has your database administrator reviewed RDI's requirements for the source database
207
-
and confirmed they are acceptable?
208
-
whyAsk: |
209
-
RDI has specific requirements for the source database (binary logging, permissions, etc.). Your DBA must confirm these are acceptable before proceeding.
210
-
answers:
211
-
no:
212
-
value: "No"
213
-
outcome:
214
-
label: "❌ RDI requirements for the source database can't be met"
0 commit comments