Skip to content

Latest commit

History

214 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Decodable Examples

Real-time Data: SimplifiedGitHub last commitGitHub LicenseStatic Badge

A squirrel holding a laptop that says "Examples repo"

Introduction

This repository contains examples of use cases that utilize Decodable streaming solution as well as demos for related open-source projects such as Apache Flink, Debezium, and Postgres.

Examples are presented "as-is" and are maintained on a best effort basis. PRs for updating existing (or adding new) examples are welcome!

For help with any of the examples, or using Decodable in general, please join our Slack group.

About Decodable

Decodable radically simplifies real-time data, making it easier to access the freshest, high-quality data. Reduce infrastructure overhead, connect data sources, transform, and deliver data reliably to any destination.

Learn more here, and sign up for a free trial today!

Contents

Stream Processing Techniques

ExampleDescription
Change StreamsUsing change streams to build materialized views in Postgres
XML ProcessingParse XML and transform to JSON
MaskingWays to mask data
Array Aggregation (1)Demonstrating how to aggregate the elements of the many side of 1:n join into an array with data from Postgres
Array Aggregation (2)Using the array_agg() UDF for denormalizing data in a pipeline from MySQL to OpenSearch

Data Pipelines

ExampleDescription
Opinionated Data PipelinesBuilding data pipelines with schema on write streams.
PostmanBuilding data pipelines with Postman.
Postgres to SnowflakeGetting data from Postgres to Snowflake using Decodable.
Flink CDCTrying out Flink CDC and comparing it to Flink SQL.
Flink SQL and Custom PipelinesBridging Flink SQL and Custom Java Pipelines with the Decodable SDK.
Testing Custom Pipelines on DecodableHow to write more modular Flink jobs with pluggable components to improve testability.

PyFlink

Decodable provides a managed PyFlink service. Learn more here.

ExampleDescription
PyFlinkRunning a basic PyFlink job on Kubernetes
PyFlink on DecodableRunning a PyFlink job as a Custom Pipeline on Decodable
PyFlink and MongoDB Vector SearchEnd-to-end example for PyFlink Vector Ingestion on Decodable with MongoDB Vector Search
PyFlink IntroA Hands-On Introduction to PyFlink

Integrations

ExampleDescription
Apache DruidSending COVID-19 data to Decodable using its REST API, cleaning it with SQL, and then sending it to Apache Druid
Apache Kafka / Flink / IcebergIntegrating Apache Kafka with Apache Iceberg through Apache Flink. As presented at Kafka Summit London 2024
Apache Kafka / Flink / Iceberg (with Decodable)Streaming from Apache Kafka to Apache Iceberg with Decodable
Apache Kafka Upsert connectorExplaining the difference between the Flink Kafka and Kafka Upsert connectors
Apache Kafka mTLSInstalling Apache Kafka on EC2 and configuring it with mTLS
Apache Kafka with ngrokUsing Docker Compose for running Apache Kafka locally, accessible from the internet using ngrok
Apache KafkaInstalling Apache Kafka on EC2 and writing to S3 with Decodable
Apache PinotTransforming osquery logs to Apache Pinot and Superset
AsyncAPIPublishing Data Products with AsyncAPI
ConfluentClickstream from Confluent Cloud joined with CDC user data from Postgres
Delta Lake / FlinkWriting to Delta Lake with Apache Flink
GitHub WebhooksProcessing GitHub Webhook events using the Decodable REST source connector
OSQuery RoutingRouting OSQuery logs with SQL
RedpandaReading and writing data to Redpanda from Flink
S3 Events in a Lambda FunctionConfiguring an S3 bucket with a Lambda notification to send data to Kinesis to be processed in Decodable
TinybirdWriting data to Tinybird from Decodable

Changed Data Capture (CDC)

ExampleDescription
MSSQL CDCEnabling MSSQL in Docker with CDC, reading from it with Debezium, writing change events into AWS Kinesis
Oracle CDCConfiguring Oracle AWS RDS with LogMiner, reading from it with Debezium, writing change events into AWS Kinesis
DynamoDb CDCConfigure DynamoDB to send change data to Kinesis, reading changes into Decodable for transformation or replication.
Logical Decoding Message ExamplesHow to retrieve logical decoding messages from the Postgres WAL
Logical Replication on Postgres 16 Stand-By ServersHow to use logical replication on Postgres 16 stand-by servers
Postgres 17 Fail-Over SlotsHow to use fail-over slots with Postgres 17
Transactional CDC Event AggregationAggregating Change Data Capture Events based on Transactional Boundaries

Flink SQL

ExampleDescription
Flink SQL TroubleshootingA set of Docker Compose environments for demonstrating various Flink SQL troubleshooting scenarios (see related blog)

Decodable tools

ExampleDescription
Decodable CI/CDAn example of using Decodable with GitHub Actions
Decodable CLI Docker imageAn example Dockerfile for running the Decodable CLI under Docker.

Kubernetes

ExampleDescription
Fink on KubernetesAn example of running Flink via the Flink Kubernetes Operator

License

This code base is available under the Apache License, version 2.

About

🌟 Examples of use cases that utilize Decodable, as well as demos for related open-source projects such as Apache Flink, Debezium, and Postgres.

Topics

Resources

Stars

92 stars

Watchers

8 watching

Forks

Used by

Contributors

Languages