Skip to content
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -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

Expand Down Expand Up @@ -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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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?

:::
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Loading