{"id":25975934,"url":"https://github.com/gamussa/flink-for-java-workshop","last_synced_at":"2026-03-08T01:32:18.579Z","repository":{"id":279511790,"uuid":"934565005","full_name":"gAmUssA/flink-for-java-workshop","owner":"gAmUssA","description":"Apache Flink for Java Developers Workshop","archived":false,"fork":false,"pushed_at":"2026-02-23T04:47:01.000Z","size":412,"stargazers_count":5,"open_issues_count":13,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-23T12:53:28.559Z","etag":null,"topics":["confluent","confluent-cloud","flink-table"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gAmUssA.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-18T03:32:34.000Z","updated_at":"2025-07-26T14:12:17.000Z","dependencies_parsed_at":"2025-03-14T14:32:07.071Z","dependency_job_id":"860c3569-b0d7-4ee9-b6b6-3298f9ddc7d2","html_url":"https://github.com/gAmUssA/flink-for-java-workshop","commit_stats":null,"previous_names":["gamussa/flink-for-java-workshop"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gAmUssA/flink-for-java-workshop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gAmUssA%2Fflink-for-java-workshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gAmUssA%2Fflink-for-java-workshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gAmUssA%2Fflink-for-java-workshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gAmUssA%2Fflink-for-java-workshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gAmUssA","download_url":"https://codeload.github.com/gAmUssA/flink-for-java-workshop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gAmUssA%2Fflink-for-java-workshop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30240896,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T00:58:18.660Z","status":"ssl_error","status_checked_at":"2026-03-08T00:55:48.608Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["confluent","confluent-cloud","flink-table"],"created_at":"2025-03-05T03:32:39.222Z","updated_at":"2026-03-08T01:32:18.565Z","avatar_url":"https://github.com/gAmUssA.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Apache Flink for Java Developers Workshop\nViktor Gamov \u003cviktor@confluent.io\u003e, Sandon Jackobs \u003csjacobs@confluent.io\u003e\nv1.0, 2025-02-17\n:toc:\n\nimage:https://github.com/gAmUssA/flink-for-java-workshop/actions/workflows/smoke-test.yml/badge.svg[Smoke Test,link=https://github.com/gAmUssA/flink-for-java-workshop/actions/workflows/smoke-test.yml]\nimage:https://github.com/gAmUssA/flink-for-java-workshop/actions/workflows/ci.yml/badge.svg[CI,link=https://github.com/gAmUssA/flink-for-java-workshop/actions/workflows/ci.yml]\n\n== 📚 Workshop Description \u0026 Learning Objectives\n\nYou were tasked with building a real-time platform, but traditional tools couldn’t handle the massive data streams, leading to lagging performance and frustrated users. \nDeadlines were looming, and the team needed a breakthrough.\n\nAnd when you learned about Apache Flink.\n\nWe will explore how the *DataStream API* allowed efficient real-time data processing and how the *Table API* and *SQL* features simplified complex queries with familiar syntax. \nTesting became more straightforward, and managing the application state was no longer a headache.\n\nYou’ll learn:\n\n- Harnessing the DataStream API: Process unbounded data streams efficiently to make your applications more responsive.\n- Unlocking Table API and SQL: Use SQL queries within Flink to simplify data processing tasks without learning new languages.\n- Effective Testing Strategies: Implement best practices for testing Flink applications to ensure your code is robust and reliable.\n- Stateful Stream Processing: Manage application state effectively for complex event processing and real-time analytics.\n\nBy the end of this talk, you will be equipped to tackle real-time data challenges. \nWhether you're building analytics dashboards, event-driven systems, or handling data streams, Apache Flink can be the game-changer you’ve been searching for.\n\n== 💻 Technical Prerequisites\n\n. *Basic Programming Knowledge* – Familiarity with **Java** or **Scala** (ugh) (Flink supports both but not for long).\n. *Understanding of Stream Processing Concepts* – Awareness of real-time data pipelines, event-driven architectures, and streaming frameworks.\n. *SQL Proficiency* – Basic understanding of SQL for working with Flink’s **Table API**.\n. *Linux/macOS Command Line Experience* – Ability to execute terminal commands and navigate a Unix-like environment.\n\n== 🔧 Required Software and Setup\n\n=== 1️⃣ Docker \u0026 Docker Compose (Mandatory)\n\n- *Why?* Flink and Kafka components will be containerized.\n- *Download \u0026 Install:* https://www.docker.com/get-started[Docker Website]\n- *macOS Alternative:* https://orbstack.dev/[OrbStack] (recommended for better performance)\n\n=== 2️⃣ Confluent Cloud Account (Mandatory)\n\n- *Why?* Required for Kafka-based streaming exercises.\n- *Sign Up \u0026 Get API Keys:* https://www.confluent.io/confluent-cloud/[Confluent Cloud]\n\n=== 3️⃣ Java 21 Installed\n\n- *Why?* Apache Flink will run on Java 21.\n- *Download Java 21 via SDKMAN:* https://sdkman.io[SDKMAN]\n- *Verify Installation:* Run `java -version` in the terminal.\n\n=== 4️⃣ Git Installed\n\n- *Why?* For cloning repositories and working with project files.\n- *Download Git:* https://git-scm.com/downloads[Git Website]\n\n=== 5️⃣ IDE with Gradle Support\n\n- *Why?* Recommended for Flink development.\n- *Download IntelliJ IDEA (Recommended):* https://www.jetbrains.com/idea/download/[IntelliJ IDEA]\n- *Download VS Code (Alternative):* https://code.visualstudio.com/download[VS Code]\n    - *Confluent Extension for VSCode:* https://marketplace.visualstudio.com/items?itemName=confluentinc.vscode-confluent[https://marketplace.visualstudio.com/items?itemName=confluentinc.confluent-vscode][link] \n\n=== 6️⃣ Gradle Installed via Wrapper (No Need for Local Installation)\n\n- *Why?* The workshop will use the **Gradle Wrapper**, eliminating the need for manual installation.\n- *Gradle Docs:* https://docs.gradle.org/current/userguide/gradle_wrapper.html[Gradle Wrapper Documentation]\n\n=== 7️⃣ Quick Setup for macOS Users with Homebrew\n\n- *Why?* Simplifies the installation of all required dependencies.\n- *How?* This project includes a `Brewfile` for managing dependencies.\n- *Setup:* Run `make setup-mac` to install all required dependencies using Homebrew.\n- *Update:* Run `make update-brew-deps` to update dependencies.\n\n== 🌐 Network \u0026 System Requirements\n\n. *Stable Internet Connection* – Required for downloading dependencies and connecting to Confluent Cloud.\n. *8GB+ RAM Recommended* – Running Flink, and other services may require significant memory.\n. *Sufficient Disk Space (At Least 10GB Free)* – For Docker images, logs, and data processing.\n\n== ⚙️ Optional but Recommended\n\n=== 1️⃣ Terraform Installed\n\n- *Why?* Useful for automated infrastructure setup in Confluent Cloud.\n- *Download Terraform:* https://developer.hashicorp.com/terraform/downloads[Terraform Website]\n\n=== 2️⃣ Basic Understanding of Terraform and IaC (Infrastructure as Code)\n\n- *Why?* If Terraform scripts are used, a fundamental knowledge of how it works would be beneficial.\n- *Terraform Getting Started Guide:* https://developer.hashicorp.com/terraform/tutorials[Terraform Tutorials]\n\n=== 3️⃣ Confluent CLI\n\n- *Why?* The workshop will use the commands in the Confluent CLI to get useful information about new Confluent infrastructure.\n- *Download and Install:* https://docs.confluent.io/confluent-cli/current/install.html[Confluent CLI Installation Instructions]\n\n=== 4️⃣ jq\n\n- *Why?* The workshop will use jq to build configuration files used to demonstrate the Confluent Flink Table API.\n- *Download and Install:* https://jqlang.org/download/[jq Download Instructions]\n\n== 📌 Pre-Workshop Setup Tasks\n\n. *Sign up for Confluent Cloud \u0026 Configure API Keys* – Ensure access credentials are available before the workshop.\n. *Clone the Workshop Repository* – The repo will include pre-built examples and configuration files (GitHub link will be shared before the workshop).\n. *Set Up Environment Variables* – Configure `JAVA_HOME` and authentication variables for Confluent Cloud.\n. *Run a Simple Docker-Based Flink Job* – Validate that the environment is correctly configured.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgamussa%2Fflink-for-java-workshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgamussa%2Fflink-for-java-workshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgamussa%2Fflink-for-java-workshop/lists"}