GithubHelp home page GithubHelp logo

doytsujin / tamer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from laserdisc-io/tamer

0.0 1.0 0.0 891 KB

Standalone alternatives to Kafka Connect Connectors

License: MIT License

Shell 4.17% Scala 95.83%

tamer's Introduction

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.

tamer's People

Contributors

scala-steward avatar sirocchj avatar barambani avatar gurghet avatar amir avatar pshirshov avatar mergify[bot] avatar sharmargilt avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.