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
1. A *stream processor* reads data from the streams and applies
@@ -68,6 +69,28 @@ RDI automatically enters a second phase called *change streaming*, where
68
69
changes in the data are captured as they happen. Changes are usually
69
70
added to the target within a few seconds after capture.
70
71
72
+
## At-least-once delivery guarantee
73
+
74
+
RDI guarantees *at-least-once delivery* to the target. This means that
75
+
a given change will never be lost, but it might be added to the target
76
+
more than once. Apart from a slight performance overhead, adding a
77
+
change multiple times is harmless because the multiple writes
78
+
are [*idempotent*](https://en.wikipedia.org/wiki/Idempotence) (that is
79
+
to say that all writes after the first one make no change to the
80
+
overall state).
81
+
82
+
## Checkpointing
83
+
84
+
RDI uses Redis streams to store the sequence of change events
85
+
captured from the source. The events are then retrieved in order
86
+
from the streams, processed, and written to the target. The stream
87
+
processor uses a *checkpoint* mechanism to keep track of the last
88
+
event in the sequence that it has successfully processed and stored. If the processor fails
89
+
for any reason, it can restart from the last checkpoint and
90
+
re-process any events that might not have been written to the target.
91
+
This ensures that all changes are eventually recorded, even in the
92
+
face of failures.
93
+
71
94
## Backpressure mechanism
72
95
73
96
Sometimes, data records can get added to the streams faster than RDI can
@@ -85,7 +108,7 @@ an error, just an informative message to note that RDI has applied
85
108
the backpressure mechanism.
86
109
{{</note>}}
87
110
88
-
###Supported sources
111
+
## Supported sources
89
112
90
113
RDI supports the following database sources using [Debezium Server](https://debezium.io/documentation/reference/stable/operations/debezium-server.html) connectors:
0 commit comments