Skip to main content

Set up a Data Mesh origin

TutorialPublicInterface: SmoothGlue Console~15 minutes

What you'll build

A live data stream published from a source system into the platform's Data Mesh. Other teams can subscribe to this stream without direct database access — no credentials shared, no direct connections opened.

Before you begin

  • SmoothGlue platform running and healthy (smoothglue status)
  • Console access with OrgPrivileged role or higher
  • Credentials for your source system (hostname, username, password or IAM role)

Step 1 — Navigate to Data Mesh

In the Console left sidebar, select Data MeshOriginsNew Origin.

The origin wizard opens.

Step 2 — Choose origin type

Select the connector type that matches your source system from the dropdown.

Common options:

ConnectorUse for
PostgreSQLRelational tables, supports CDC
MySQLRelational tables, supports CDC
S3Object storage, batch polling
KafkaExisting Kafka topics
HTTP EndpointREST or webhook sources
RedisKey-value and pub/sub streams

The wizard shows only the fields relevant to the selected type. Select your connector and click Next.

Step 3 — Configure connection

Enter your source system's connection details. Fields vary by connector type.

PostgreSQL example:

FieldWhat to enter
HostDatabase hostname or IP address
Port5432 (default)
DatabaseDatabase name
UsernameRead-only service account username
PasswordStored as a Kubernetes secret — not visible after save
SSL Moderequire (recommended for production)

The Console validates the connection before allowing you to proceed. If validation fails, check that:

  • The host is reachable from the cluster network
  • The service account has SELECT privileges on the target tables
  • SSL mode matches the server's requirements

Fix any connection errors before clicking Next.

Step 4 — Define the publication

Configure what data to stream and how.

FieldWhat to enter
Publication nameA slug identifying this stream (e.g. orders-stream)
Tables / QuerySelect tables from the picker, or write a SQL query (connector-dependent)
Polling intervalHow often to check for new rows (e.g. 30s). Not used when CDC is enabled.
Change-data-capture (CDC)Enable if your connector supports it — streams row-level changes in near real time instead of polling

Click Next.

Step 5 — Review and publish

The Console shows a summary before creating the stream:

  • Origin type — the connector you selected
  • Connection — host and database name shown; password redacted
  • Publication name — the slug you entered
  • Tables / Query — what data will be streamed
  • Delivery mode — polling interval or CDC

Review all fields. Click Publish.

Expected output in the Console:

Origin created: orders-stream
Status: Provisioning...
✓ xpublication resource created
✓ datamesh-core started
Status: Active

Status changes to Active within 60 seconds.

Verify

Confirm the origin is running:

  1. Console → Data MeshOrigins → select your origin
  2. Check Status: Active
  3. Confirm the Messages/sec counter is incrementing

Copy the Publication ID from the origin detail page. Subscribers need this ID to connect.

What happened under the hood

The Console created an xpublication custom resource in the datamesh namespace. The datamesh-core engine (a Go-based Benthos fork) is now polling or streaming your source and publishing messages to a NATS JetStream subject. Subscribers can connect to that subject without any direct access to your source database.

Next: Connect a Data Mesh destination →