Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 1 addition & 15 deletions docs/.vuepress/configs/sidebar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,21 +50,7 @@ export const sidebarEn: EsSidebarOptions = {
]
}
]
},
"/getting-started/use-cases/outbox-out-of-the-box.md",
"/getting-started/use-cases/microservices.md",
"/getting-started/use-cases/time-traveling.md",
"/getting-started/use-cases/business-workflow.md",
]
},
{
text: "Best Practices",
collapsible: true,
expanded: false,
group: "Best Practices",
children: [
"/getting-started/best-practices/checkpoint.md",
"/getting-started/best-practices/exactly-once-processing.md"
}
]
},
{
Expand Down
5 changes: 0 additions & 5 deletions docs/getting-started/best-practices/checkpoint.md

This file was deleted.

This file was deleted.

5 changes: 0 additions & 5 deletions docs/getting-started/use-cases/business-workflow.md

This file was deleted.

5 changes: 0 additions & 5 deletions docs/getting-started/use-cases/microservices.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -140,8 +140,6 @@ You will examine how this pattern is applied to the Postgres projection applicat
::: 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.

For more information about checkpoints, [click here](../../best-practices/checkpoint.md)

:::

::: info Storing Checkpoints in Relational Databases
Expand Down Expand Up @@ -217,20 +215,17 @@ You will examine how this pattern is applied to the Postgres projection applicat

::: info Exactly-once processing
This implementation ensures exactly-once processing by using KurrentDB for reliable persistence, idempotent projection logic, and transactional updates. The read model and checkpoint are updated atomically, preventing duplicates or inconsistencies, unlike traditional message brokers that rely on at-least-once or at-most-once delivery.

For more information about exactly-once processing with catch-up subscription and transactional checkpoints, [click here](../../best-practices/exactly-once-processing.md)

:::

The `CartProjection.Project(e)` function above returns a SQL command that updates the read model depending on the event.

4. Run the following command in the terminal to open the code that performs for the Postgres projection:
5. Run the following command in the terminal to open the code that performs for the Postgres projection:

```sql
code ./PostgresProjection/CartProjection.cs
```

5. Locate and examine the code that handles the projection for the `CustomerStartedShopping` event:
6. Locate and examine the code that handles the projection for the `CustomerStartedShopping` event:

```cs
private static IEnumerable<CommandDefinition>? Project(CustomerStartedShopping evt)
Expand All @@ -247,7 +242,7 @@ You will examine how this pattern is applied to the Postgres projection applicat

This returns a sql command that inserts a cart if `CustomerStartedShopping` event is received.

6. Locate and examine the code that handles the projection for the `CartGotCheckedOut` event:
7. Locate and examine the code that handles the projection for the `CartGotCheckedOut` event:

```cs
private static IEnumerable<CommandDefinition>? Project(CartGotCheckedOut evt)
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](./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
### [Part 1: Setup and Initialize KurrentDB](/getting-started/use-cases/mix-and-match-database/tutorial-1.md)
1. **[Set up your Codespaces](/getting-started/use-cases/mix-and-match-database/tutorial-1.md#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](/getting-started/use-cases/mix-and-match-database/tutorial-1.md#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](/getting-started/use-cases/mix-and-match-database/tutorial-1.md#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](/getting-started/use-cases/mix-and-match-database/tutorial-2.md)
4. **[Execute Projection Applications](/getting-started/use-cases/mix-and-match-database/tutorial-2.md#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](/getting-started/use-cases/mix-and-match-database/tutorial-2.md#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](/getting-started/use-cases/mix-and-match-database/tutorial-2.md#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](/getting-started/use-cases/mix-and-match-database/tutorial-3.md)
7. **[Review the Projected Read Models in Redis](/getting-started/use-cases/mix-and-match-database/tutorial-3.md#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](/getting-started/use-cases/mix-and-match-database/tutorial-3.md#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](/getting-started/use-cases/mix-and-match-database/tutorial-4.md)
9. **[Browse the Demo Web Page](/getting-started/use-cases/mix-and-match-database/tutorial-4.md#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](/getting-started/use-cases/mix-and-match-database/tutorial-4.md#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](/getting-started/use-cases/mix-and-match-database/tutorial-4.md#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](/getting-started/use-cases/mix-and-match-database/tutorial-4.md#step-12-understanding-catch-up-subscription-and-real-time-processing)**: Understand how the code projects events to the read models in real-time
5 changes: 0 additions & 5 deletions docs/getting-started/use-cases/operational-audit-log.md

This file was deleted.

5 changes: 0 additions & 5 deletions docs/getting-started/use-cases/outbox-out-of-the-box.md

This file was deleted.

5 changes: 0 additions & 5 deletions docs/getting-started/use-cases/time-traveling.md

This file was deleted.

Loading