# Estuary

A video walkthrough can be found below:

{% embed url="<https://youtu.be/920VzW6jE1E?feature=shared>" %}

## Prerequisites

1. WarpStream account - get access to WarpStream by registering [here](https://console.warpstream.com/signup).
2. Estuary account - get access to Estuary by registering [here](https://dashboard.estuary.dev/register).
3. WarpStream cluster up and running.

## Step 1: Create a topic in your WarpStream cluster

You will need a WarpStream cluster, credentials, and at least one Topic with data available. If you do not have an active topic, steps 1 and 2 of this guide will provide a simple example to test with.

Obtain the Bootstrap Broker from the WarpStream console by navigating to your cluster and clicking the Connect tab. If you don't have SASL credentials yet, you can also [create a set of credentials](https://docs.warpstream.com/warpstream/kafka/manage-security/sasl-authentication#creating-credentials) from the console.

Store these values for easy reference; they will be needed in Upsolver. If you are going to produce records to your topic from the command line, then export them as environment variables in a terminal window:

```bash
export BOOTSTRAP_HOST=<YOUR_BOOTSTRAP_BROKER> \
SASL_USERNAME=<YOUR_SASL_USERNAME> \
SASL_PASSWORD=<YOUR_SASL_PASSWORD>;
```

Then, create a topic in the WarpStream console if you don't already have one.

## Step 2: Produce some records

You can use the WarpStream CLI to produce messages to your topic, in this case `estuary_demo`:

{% code overflow="wrap" %}

```bash
warpstream kcmd -bootstrap-host $BOOTSTRAP_HOST -tls -username $SASL_USERNAME -password $SASL_PASSWORD -type produce -topic estuary_demo --records '{"action": "click", "user_id": "user_0", "page_id": "home"},,{"action": "hover", "user_id": "user_0", "page_id": "home"},,{"action": "scroll", "user_id": "user_0", "page_id": "home"},,{"action": "click", "user_id": "user_1", "page_id": "home"},,{"action": "click", "user_id": "user_1", "page_id": "home"},,{"action": "click", "user_id": "user_2", "page_id": "home"}'
```

{% endcode %}

Note that the WarpStream CLI uses double commas (`,,)` as a delimiter between JSON records.

## Step 3: Connect Estuary to WarpStream

In the Estuary Web Console, select **Sources** from the left-hand navigation. Then click "**+ NEW CAPTURE.**" Search/select "**Kafka**":

<figure><img src="https://77315434-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjB7FxO8ty4EXO4HsQP4E%2Fuploads%2Fgit-blob-1fcdfec2e96bb81985f3bb14945b21f8962d24c7%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

Next, fill in your WarpStream endpoint configuration in Estuary, as illustrated below:

<figure><img src="https://77315434-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjB7FxO8ty4EXO4HsQP4E%2Fuploads%2Fgit-blob-e9fa63d0a6df340b42f0dd49c79e91107ec2e2ca%2FScreenshot%202024-07-16%20151724.jpg?alt=media" alt=""><figcaption></figcaption></figure>

That's everything that you will need from WarpStream.

## Next Steps

With WarpStream configured, all that's left is to choose your **Destination** in Estuary and configure it as needed.

Next, check out the WarpStream docs for configuring the [WarpStream Agent](https://docs.warpstream.com/warpstream/agent-setup/deploy), or review the [Estuary docs](https://docs.estuary.dev/) to learn more about what is possible with WarpStream and Estuary!
