All Projects → laserdisc-io → tamer

laserdisc-io / tamer

Licence: MIT license
Standalone alternatives to Kafka Connect Connectors

Programming Languages

scala
5932 projects
shell
77523 projects

Projects that are alternatives of or similar to tamer

tutorials
🎥 Source code of the examples shown in the video tutorials
Stars: ✭ 18 (-57.14%)
Mutual labels:  fs2, fp, zio
confluent-spark-avro
Spark UDFs to deserialize Avro messages with schemas stored in Schema Registry.
Stars: ✭ 18 (-57.14%)
Mutual labels:  avro, schema-registry
avro-schema-generator
Library for generating avro schema files (.avsc) based on DB tables structure
Stars: ✭ 38 (-9.52%)
Mutual labels:  avro, jdbc
Rumble
⛈️ Rumble 1.11.0 "Banyan Tree"🌳 for Apache Spark | Run queries on your large-scale, messy JSON-like data (JSON, text, CSV, Parquet, ROOT, AVRO, SVM...) | No install required (just a jar to download) | Declarative Machine Learning and more
Stars: ✭ 58 (+38.1%)
Mutual labels:  avro, s3
avrora
A convenient Elixir library to work with Avro schemas and Confluent® Schema Registry
Stars: ✭ 59 (+40.48%)
Mutual labels:  avro, schema-registry
dotnet-avro
An Avro implementation for .NET
Stars: ✭ 60 (+42.86%)
Mutual labels:  avro, schema-registry
Examples
Demo applications and code examples for Confluent Platform and Apache Kafka
Stars: ✭ 571 (+1259.52%)
Mutual labels:  avro, jdbc
fs2-google-pubsub
Google Cloud Pub/Sub stream-based client built on top of cats-effect, fs2 and http4s.
Stars: ✭ 32 (-23.81%)
Mutual labels:  fs2, fp
Storagetapper
StorageTapper is a scalable realtime MySQL change data streaming, logical backup and logical replication service
Stars: ✭ 232 (+452.38%)
Mutual labels:  avro, s3
schema-registry-php-client
A PHP 7.3+ API client for the Confluent Schema Registry REST API based on Guzzle 6 - http://docs.confluent.io/current/schema-registry/docs/index.html
Stars: ✭ 40 (-4.76%)
Mutual labels:  avro, schema-registry
sbt-avro
Plugin SBT to Generate Scala classes from Apache Avro schemas hosted on a remote Confluent Schema Registry.
Stars: ✭ 15 (-64.29%)
Mutual labels:  avro, schema-registry
schema-registry
📙 json & avro http schema registry backed by Kafka
Stars: ✭ 23 (-45.24%)
Mutual labels:  avro, schema-registry
avro turf
A library that makes it easier to use the Avro serialization format from Ruby.
Stars: ✭ 130 (+209.52%)
Mutual labels:  avro, schema-registry
spring-cloud-stream-event-sourcing-testcontainers
Goal: create a Spring Boot application that handles users using Event Sourcing. So, whenever a user is created, updated, or deleted, an event informing this change is sent to Kafka. Also, we will implement another application that listens to those events and saves them in Cassandra. Finally, we will use Testcontainers for integration testing.
Stars: ✭ 16 (-61.9%)
Mutual labels:  avro, schema-registry
Doobie
Functional JDBC layer for Scala.
Stars: ✭ 1,910 (+4447.62%)
Mutual labels:  jdbc, fp
qwery
A SQL-like language for performing ETL transformations.
Stars: ✭ 28 (-33.33%)
Mutual labels:  avro, s3
pfps-examples
🏮 Standalone examples shown in the book "Practical FP in Scala: A hands-on approach"
Stars: ✭ 167 (+297.62%)
Mutual labels:  fs2, fp
scala-functional-programming-tutorial
Functional Programming in Scala Tutorial
Stars: ✭ 23 (-45.24%)
Mutual labels:  fs2, fp
Schema Registry
Confluent Schema Registry for Kafka
Stars: ✭ 1,647 (+3821.43%)
Mutual labels:  avro, schema-registry
kafka-scala-examples
Examples of Avro, Kafka, Schema Registry, Kafka Streams, Interactive Queries, KSQL, Kafka Connect in Scala
Stars: ✭ 53 (+26.19%)
Mutual labels:  avro, schema-registry

Tamer

CI Release Known Vulnerabilities Maven Central Scala Steward badge

Tamer is a domesticated Kafka source connector.

It puts the user of this library in complete control of how data is ingested and what state is preserved (in a compacted Kafka topic). As an example, it allows for a JDBC source to pull a window of data (e.g. 5 minutes), starting from some time in the past, as fast as possible. At every "pull", the user can decide what to do next (e.g. should the window be increased/decreased? Should the pull slow down?).

Tamer currently supports 4 possible source types:

  • any SQL data store Doobie can handle (e.g. Postgres, MySQL, etc)
  • any cloud storage that is AWS S3 compatible
  • OCI Object Storage
  • any type of REST API, with AuthN, pagination and HATEOAS support

Some sensible defaults are provided out of the box but many customisations are possible.

Usage

Add one of Tamer's modules as a dependency to your project:

// check the current version on Maven Central (or use the badge above)
libraryDependencies += "io.laserdisc" %% "tamer-db"                % version
libraryDependencies += "io.laserdisc" %% "tamer-oci-objectstorage" % version
libraryDependencies += "io.laserdisc" %% "tamer-rest"              % version
libraryDependencies += "io.laserdisc" %% "tamer-s3"                % version

See here for a sample application that makes use of Tamer's Db module for ingesting data from a JDBC datasource.

End to end testing

Database module

Basic manual testing is available for the code in the example module tamer.db.DatabaseSimple (and/or tamer.db.DatabaseGeneralized). This code covers getting data from a synthetic Postgres database.

Make sure you have docker installed before proceeding.

From the db/local folder launch docker compose up (you can enter docker compose down if you want to start from scratch). After that you should be able to access the Kafka gui from http://localhost:8000.

Start the runDatabaseSimple.sh program which contains some example environment variables. If Tamer works you should see messages appearing in the Kafka gui.

S3 module

Basic manual testing is available for the code in the example module tamer.s3.S3Simple. This code covers getting data from a synthetic S3 bucket.

Make sure you have docker installed before proceeding.

From the s3/local folder launch docker compose up (you can enter docker compose down if you want to start from scratch). After that you should be able to access the Kafka gui from http://localhost:8000.

Start the runS3Simple.sh program which contains some example environment variables. If Tamer works you should see messages appearing in the Kafka gui.

License

Tamer is licensed under the MIT License (the "License"); you may not use this software except in compliance with the License.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].