Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

updated the architecture doc #2786

Merged
merged 3 commits into from
Aug 23, 2023
Merged

Conversation

yaronp68
Copy link
Contributor

No description provided.

@yaronp68 yaronp68 self-assigned this Aug 23, 2023
@yaronp68 yaronp68 added the rdi Redis Data Integration label Aug 23, 2023
Copy link
Collaborator

@dwdougherty dwdougherty left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lots of small changes.

@@ -9,59 +9,89 @@ headerRange: "[2]"
aliases:
---

Redis Data Integration is a product for data ingestion from existing systems of record (mainly databases) into Redis Enterprise.
You can think of Redis Data Integration as a streaming ELT process:
Redis Data Integration (RDI) is a product that helps Redis Enterprise users ingest and export data in near real time
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Redis Data Integration (RDI) is a product that helps Redis Enterprise users ingest and export data in near real time
Redis Data Integration (RDI) is a product that helps Redis Enterprise users ingest and export data in near real time. RDI provides the following:

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

- Data is **E**xtracted from the source database using [Debezium](https://debezium.io/) connectors.
- End to end solution - No need for additional tools and integrations
- Capture Data Change (CDC) included
- Covers most popular databases as sources & targets
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Covers most popular databases as sources & targets
- Covers most popular databases as sources and targets

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

- Data delivery guaranteed (at least once)
- Zero downtime day 2 operations (Reconfigure & Upgrade)

Redis Data Integration currently supports 2 use cases:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Redis Data Integration currently supports 2 use cases:
Redis Data Integration currently supports two use cases:

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

- Covers most popular databases as sources & targets
- Declarative data mapping and transformations - no custom code needed
- Data delivery guaranteed (at least once)
- Zero downtime day 2 operations (Reconfigure & Upgrade)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Zero downtime day 2 operations (Reconfigure & Upgrade)
- Zero downtime day 2 operations (reconfigure & upgrade)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment on lines 23 to 24
- Ingest (Cache prefetch).
- Write Behind.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Ingest (Cache prefetch).
- Write Behind.
- Ingest (cache prefetch)
- Write behind

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done


### Write behind topology

RDI CLI and engine comes in one edition that can run both ingest and write behind. However, the topology for write behind is different.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
RDI CLI and engine comes in one edition that can run both ingest and write behind. However, the topology for write behind is different.
RDI CLI and engine come in one edition that can run both ingest and write behind. However, the topology for write behind is different.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

### Write behind topology

RDI CLI and engine comes in one edition that can run both ingest and write behind. However, the topology for write behind is different.
RDI engine is installed on Redis database containing the application data and not on a separate staging Redis database. RDI streams and control plain adds a small footprint of few hundreds of MBs to the Redis database. In the write behind topology, RDI process in parallel on each shard and establishes a single connection from each shard to the downstream database.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
RDI engine is installed on Redis database containing the application data and not on a separate staging Redis database. RDI streams and control plain adds a small footprint of few hundreds of MBs to the Redis database. In the write behind topology, RDI process in parallel on each shard and establishes a single connection from each shard to the downstream database.
RDI engine is installed on a Redis database containing the application data and not on a separate staging Redis database. RDI streams and control plane add a small footprint of few hundreds of MBs to the Redis database. In the write behind topology, RDI processed in parallel on each shard and establishes a single connection from each shard to the downstream database.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment on lines 148 to 151
- Hash
- Json
- Set
- Sorted Set
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Hash
- Json
- Set
- Sorted Set
- Hash
- JSON
- Set
- Sorted set

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

- Set
- Sorted Set

Unlike the ingest scenario, write behind has no default behavior for model translation. It is up to the user to create a declarative job, specifying the mapping between Redis key and target database record.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Unlike the ingest scenario, write behind has no default behavior for model translation. It is up to the user to create a declarative job, specifying the mapping between Redis key and target database record.
Unlike the ingest scenario, write behind has no default behavior for model translation. It is up to the user to create a declarative job, specifying the mapping between Redis keys and target database's records.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

- Sorted Set

Unlike the ingest scenario, write behind has no default behavior for model translation. It is up to the user to create a declarative job, specifying the mapping between Redis key and target database record.
The job `keys` and `mapping` sections help making this an easy task.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The job `keys` and `mapping` sections help making this an easy task.
The job `keys` and `mapping` sections help make this an easy task.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

RDI captures the changes to a selected set of key-patterns in a Redis keyspace and asynchronously writes them in small batches to the downstream database, so the application doesn't need to take care of remodeling the data or managing the connection with the downstream database.

RDI write behind can normalize a key in Redis to several records in one or more tables at the target.
To learn more about write behind declarative jobs and renormalization read the [write behind quick start guide]({{<relref="/rdi/quickstart/write-behind-guide.md">}})
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One more fix... the relref shortcode syntax was incorrect (no = sign).

Suggested change
To learn more about write behind declarative jobs and renormalization read the [write behind quick start guide]({{<relref="/rdi/quickstart/write-behind-guide.md">}})
To learn more about write behind declarative jobs and renormalization read the [write behind quick start guide]({{< relref "/rdi/quickstart/write-behind-guide.md" >}})

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@dwdougherty dwdougherty merged commit 57a942b into rdi-preview-build Aug 23, 2023
4 checks passed
@dwdougherty dwdougherty deleted the update-rdi-architecture branch August 23, 2023 16:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rdi Redis Data Integration
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants