Connecting Decodable to sources and destinations

One of the first steps in incorporating Decodable to your existing data ecosystem is to create connections in Decodable to get data in from a data source or send data out to a data destination. Decodable includes connectors that provide read and write support for a variety of data sources and destinations including Amazon Kinesis, Amazon S3, Apache Kafka, Apache Pulsar, Snowflake, and more.

After creating a connection to your data source or destination, activate it to start streaming data to or from the Decodable platform. A connection to a data source is also known as a source connection and a connection to a data destination is also known as a sink connection.

See the following for a full list of sources and destinations.

Streams per Connector

Decodable connectors support one of the following two models:

  • One connector instance can read/write from one stream.

    For example, one Kafka source connector can read from one Kafka topic and write to one Decodable stream.

or

  • One connector instance can read/write from multiple streams.

    For example:

    • One MySQL source connector can read from multiple tables in a database, writing to multiple Decodable streams.

    • One Snowflake sink connector can read from multiple Decodable streams and write to multiple tables on a Snowflake database

If a connector supports multiple streams it will be indicated under Features on the connector’s reference page.

Network connectivity

Decodable Connectors require network connectivity to resources, like databases, to read or write data. These connections can be made in different ways:

  • Public internet

  • Private connectivity with AWS PrivateLink

  • SSH Tunnels

See below for more details.

Public internet

By default Decodable will attempt to connect to your systems over the public internet. As a result, things like host names must be resolvable, and IP addresses must be routable. If you need to explicitly approve connections, refer to our list of public IPs addresses: Available regions and IP addresses.

AWS PrivateLink allows Decodable to access services, including Amazon RDS and Amazon Managed Service for Kafka (MSK), in your private VPC without exposing them to the public Internet. To connect with PrivateLink you must create a Network Load Balancer and VPC Endpoint Service in your VPC, and provide the Endpoint Service to Decodable support to establish connectivity.

Decodable connects to a customer service via a VPC Endpoint Service and AWS Network Load Balancer

SSH tunnels

SSH tunnels allow Decodable to connect securely to resources that can’t be exposed to the internet. To connect using SSH Tunnels you will configure a public SSH server and add a Decodable-provided public key to your authorized keys.

Decodable connects to a customer service via an SSH client on the Decodable side and an SSH service in the customer network

Contact Decodable support for help managing connectivity to your data infrastructure, or to configure PrivateLink or SSH tunnels for your connections.

For instructions on how to create a connection to a specific data source or destination, refer to the topic in the Connect to a data source or Connect to a data destination chapters that correspond to the data location that you are interested in.

Processing guarantees for Connectors

While Decodable’s stream processing engine always processes data exactly once, some connectors don’t support this level of guarantee or make it configurable.

The processing guarantee varies depending on the connector. Connectors always specify whether they provide at least once or exactly once processing. For the exact processing guarantee, refer to the topic corresponding to the connector that you are interested in.