Flink projects

A Flink project is the home of one Flink application. Your CI system builds the application and adds each build to the project as a version; Streamtime runs a version as a job in a Job Workspace, and moves it forward or back when you choose.

  • Runtime: Java, Scala or Python. It decides what a version is: a JAR, or a .zip for Python.
  • Budget: the project books Flink Units on its Job Workspace, and its jobs run within them. See Capacity units.
  • Versions come one of two ways: uploaded to Streamtime, or kept in your own artifact store (an OCI registry such as GHCR, or a JFrog repository) and registered by digest.
  • HEAD is the version the project runs. Moving HEAD deploys that version, newer or older than the current one.
  • A CI key lets your pipeline add versions. It is shown once.

The API examples below share this setup:

Create a project

Connect your own artifact store

Optional. Keep builds in your own registry instead of uploading them, and give Streamtime a read-only credential limited to this project’s artifacts.

Add a version from CI

Your pipeline adds each build with the project’s CI key. Streamtime generates the pipeline for you: GitHub, GitLab, Bitbucket or a generic script, on the project’s CI/CD tab or with streamtime flink-project ci-template etl --provider github. streamtime flink-project init etl writes a local development setup.

Run a version

Moving the project’s HEAD to a version deploys it. The first time, name the job and its Job Workspace.

Delete a project

Deleting removes the project, every version and its CI key. It is refused while a Flink deployment or job still runs one of its versions. streamtime flink-project delete etl, DELETE $API/flink-projects/etl/, or remove the streamtime_flink_project resource.