diff --git a/docs/getting-started/use-cases/mix-and-match-database/images/use-the-right-database-for-the-job-dark.png b/docs/getting-started/use-cases/mix-and-match-database/images/use-the-right-database-for-the-job-dark.png new file mode 100644 index 000000000..501912e61 Binary files /dev/null and b/docs/getting-started/use-cases/mix-and-match-database/images/use-the-right-database-for-the-job-dark.png differ diff --git a/docs/getting-started/use-cases/mix-and-match-database/introduction.md b/docs/getting-started/use-cases/mix-and-match-database/introduction.md index 67f9ce844..414d6c685 100644 --- a/docs/getting-started/use-cases/mix-and-match-database/introduction.md +++ b/docs/getting-started/use-cases/mix-and-match-database/introduction.md @@ -1,8 +1,11 @@ --- title: Introduction +next: ./tutorial-intro.md --- -![](./images/use-the-right-database-for-the-job.png) +![](./images/use-the-right-database-for-the-job.png#light) + +![](./images/use-the-right-database-for-the-job-dark.png#dark) ## Mix-and-Match Database @@ -47,7 +50,7 @@ KurrentDB captures all changes (events) immutably within your system, which can ### Benefits include: - **Reliable and Simple Synchronization**: - - Events stored immutably in sequential order prevent typical synchronization issues like message loss or duplication. + - Events stored immutably in sequential order help detect and deal with typical synchronization issues like message loss or duplication. - **Real-time Updates**: - KurrentDB allows real-time event stream subscriptions, enabling instant updates across data stores like Redis and MongoDB. diff --git a/docs/getting-started/use-cases/mix-and-match-database/tutorial-1.md b/docs/getting-started/use-cases/mix-and-match-database/tutorial-1.md index 909a5f07a..d97dbf3e0 100644 --- a/docs/getting-started/use-cases/mix-and-match-database/tutorial-1.md +++ b/docs/getting-started/use-cases/mix-and-match-database/tutorial-1.md @@ -68,9 +68,14 @@ For this quickstart, you can safely ignore and close any Codespaces notification 1. Click the `Stream Browser` link from the top navigation bar. -1. Under `Recently Changed Streams`, click the `$ce-cart` link. +2. Under `Recently Changed Streams`, click the `$ce-cart` link. -2. You should see an ordered list of the appended events associated with two distinct, virtual shopping carts. + ::: info Understanding Category System Projection + The `$ce-cart` stream contains events from all the carts in KurrentDB. This uses the category system projection stream feature. For more information, see [System Projections](https://docs.kurrent.io/server/v25.0/features/projections/system.html#by-category). + ::: + + +3. You should see an ordered list of the appended events associated with two distinct, virtual shopping carts. ::: info Introducing shopping cart events In KurrentDB, events for each shopping cart are appended to a stream like `cart-2fbe05d1dcf043d782ea24923298ae3a`, where `2fbeone05d1dcf043d782ea24923298ae3a` is the cart's unique ID. @@ -90,6 +95,6 @@ For this quickstart, you can safely ignore and close any Codespaces notification ::: info Quick Quiz - What were the quantities of each product in the shopping carts before they were abandoned? + What were the quantities of each product in the shopping carts? ::: diff --git a/docs/getting-started/use-cases/mix-and-match-database/tutorial-2.md b/docs/getting-started/use-cases/mix-and-match-database/tutorial-2.md index 755590dd5..2ba1ad685 100644 --- a/docs/getting-started/use-cases/mix-and-match-database/tutorial-2.md +++ b/docs/getting-started/use-cases/mix-and-match-database/tutorial-2.md @@ -89,7 +89,7 @@ In this step, you will review the records in the `carts` and `cart_items` tables You will see a few items in each cart. ::: tip - If you're stuck with the output and can't exit, press `q` to exit. You're likely paging mode because the output has overflowed. + If you're stuck with the output and can't exit, press `q` to exit. You're likely in paging mode because the output has overflowed. ::: ::: info Quick Quiz @@ -135,7 +135,7 @@ You will examine how this pattern is applied to the Postgres projection applicat : FromStream.Start; // otherwise, subscribe from the start of the stream ``` - A `SELECT` is statement used retrieve the checkpoint. If no checkpoint is found or it is the first time the application is executed, we can retrieve the default start position: + A `SELECT` is statement used retrieve the checkpoint. If no checkpoint is found or it is the first time the application is executed, we can retrieve the default start position. ::: info Understanding Checkpoint A projection often uses a checkpoint to recover the position of the last processed event. This way, when an application unexpectedly crashes mid-process, the projection does not have to process all the previously processed events. @@ -175,10 +175,6 @@ You will examine how this pattern is applied to the Postgres projection applicat For more information about connectors, [click here](https://docs.kurrent.io/server/v24.10/features/connectors/) ::: - ::: info Understanding Category System Projection - The `$ce-cart` stream contains events from all the carts in KurrentDB. This uses the category system projection stream feature. For more information, [click here](https://docs.kurrent.io/server/v24.10/features/projections/system.html#by-category). - ::: - 4. Locate and examine the code that processes each event: ```cs diff --git a/docs/getting-started/use-cases/mix-and-match-database/tutorial-4.md b/docs/getting-started/use-cases/mix-and-match-database/tutorial-4.md index e61f54a8b..394b234ed 100644 --- a/docs/getting-started/use-cases/mix-and-match-database/tutorial-4.md +++ b/docs/getting-started/use-cases/mix-and-match-database/tutorial-4.md @@ -87,7 +87,7 @@ Are the contents of the Top 10 Products (Redis) table and the Carts Table (Postg 1. Run the following command in the terminal to open the main program for the Postgres projection application: ```sql - code ./PostgresProjection/program.cs + code ./PostgresProjection/Program.cs ``` 2. Locate and examine the code that subscribes to stream diff --git a/docs/getting-started/use-cases/mix-and-match-database/tutorial-intro.md b/docs/getting-started/use-cases/mix-and-match-database/tutorial-intro.md index df5493dc1..2eef8a0b2 100644 --- a/docs/getting-started/use-cases/mix-and-match-database/tutorial-intro.md +++ b/docs/getting-started/use-cases/mix-and-match-database/tutorial-intro.md @@ -26,19 +26,19 @@ Before starting, ensure you have the following: This tutorial consists of the following steps: -### Part 1: Setup and Initialize KurrentDB -1. **Setup your Codespaces**: Starts up an interactive coding environment in your browser where all tools and database are installed -2. **Start and Initialize KurrentDB with Sample Events**: Start up KurrentDB and initialize it with sample events -3. **Browse the Sample Events in KurrentDB's Admin UI**: Access the Admin UI to browse the appended events -### Part 2: Project KurrentDB Events to Postgres -4. **Execute Projection Applications**: Starts up the projection sample applications that transform KurrentDB events into read models in Postgres and Redis -5. **Review the Projected Read Models in Postgres**: Run the PostgreSQL command line tool to review the newly inserted records -6. **Examine the Postgres Projection Application Codebase**: Examine the PostgreSQL projection application codebase to see how events are transformed to read models in the tables -### Part 3: Project KurrentDB Events to Redis -7. **Review the Projected Read Models in Redis**: Run the Redis command line tool to review the newly added entries -8. **Examine the Redis Projection Application Codebase**: Examine the Redis projection application codebase to see how events are transformed into read models in Redis -### Part 4: Project KurrentDB Events in Real-Time -9. **Browse the Demo Web Page**: Navigate to the Demo Web Page to see a sample of how the read models in Postgres and Redis are used -10. **Start the Live Data Generator**: Start a live data generator program that continuously appends events into KurrentDB -11. **Watch the Read Models Update in Real-Time**: See how the read models are updated in real-time in the Demo Web Page -12. **Review Codebase**: Understand how the code projects events to the read models in real-time +### [Part 1: Setup and Initialize KurrentDB](./tutorial-1.md) +1. **[Set up your Codespaces](./tutorial-1.html#step-1-set-up-your-codespaces)**: Starts up an interactive coding environment in your browser where all tools and database are installed +2. **[Start and Initialize KurrentDB with Sample Events](./tutorial-1.html#step-2-start-and-initialize-kurrentdb-with-sample-events)**: Start up KurrentDB and initialize it with sample events +3. **[Browse the Sample Events in KurrentDB's Admin UI](./tutorial-1.html#step-3-browse-sample-events-in-kurrentdb-s-admin-ui)**: Access the Admin UI to browse the appended events +### [Part 2: Project KurrentDB Events to Postgres](./tutorial-2.md) +4. **[Execute Projection Applications](./tutorial-2.html#step-4-execute-projection-application)**: Starts up the projection sample applications that transform KurrentDB events into read models in Postgres and Redis +5. **[Review the Projected Read Models in Postgres](./tutorial-2.html#step-5-review-the-projected-read-models-in-postgres)**: Run the PostgreSQL command line tool to review the newly inserted records +6. **[Examine the Postgres Projection Application Codebase](./tutorial-2.html#step-6-examine-the-postgres-projection-application-codebase)**: Examine the PostgreSQL projection application codebase to see how events are transformed to read models in the tables +### [Part 3: Project KurrentDB Events to Redis](./tutorial-3.md) +7. **[Review the Projected Read Models in Redis](./tutorial-3.html#step-7-review-the-projected-read-models-in-redis)**: Run the Redis command line tool to review the newly added entries +8. **[Examine the Redis Projection Application Codebase](./tutorial-3.html#step-8-examine-the-redis-projection-application-codebase)**: Examine the Redis projection application codebase to see how events are transformed into read models in Redis +### [Part 4: Project KurrentDB Events in Real-Time](./tutorial-4.md) +9. **[Browse the Demo Web Page](./tutorial-4.html#step-9-browse-the-demo-web-page)**: Navigate to the Demo Web Page to see a sample of how the read models in Postgres and Redis are used +10. **[Start the Live Data Generator](./tutorial-4.html#step-10-start-the-live-data-generator)**: Start a live data generator program that continuously appends events into KurrentDB +11. **[Watch the Read Models Update in Real-Time](./tutorial-4.html#step-11-watch-the-read-models-update-in-real-time)**: See how the read models are updated in real-time in the Demo Web Page +12. **[Understanding catch-up subscription and real-time processing](./tutorial-4.html#step-12-understanding-catch-up-subscription-and-real-time-processing)**: Understand how the code projects events to the read models in real-time