{"id":34036761,"url":"https://github.com/fransking/flink-statefun-tasks","last_synced_at":"2026-04-10T10:03:08.652Z","repository":{"id":37797781,"uuid":"297270161","full_name":"fransking/flink-statefun-tasks","owner":"fransking","description":"Tasks API for Stateful Functions on Flink","archived":false,"fork":false,"pushed_at":"2026-02-28T11:17:03.000Z","size":7369,"stargazers_count":13,"open_issues_count":1,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-28T15:39:39.318Z","etag":null,"topics":["flink","python","statefun"],"latest_commit_sha":null,"homepage":"https://flink-demo-az.sbbsystems.co.uk","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fransking.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2020-09-21T08:03:51.000Z","updated_at":"2026-02-14T12:37:01.000Z","dependencies_parsed_at":"2025-10-18T15:13:08.861Z","dependency_job_id":"2e74672d-40a8-4ed8-a86e-f50e39d98cf0","html_url":"https://github.com/fransking/flink-statefun-tasks","commit_stats":{"total_commits":328,"total_committers":4,"mean_commits":82.0,"dds":0.07012195121951215,"last_synced_commit":"d32096bb80cb076d8165d135cf5264fab1cdba66"},"previous_names":[],"tags_count":210,"template":false,"template_full_name":null,"purl":"pkg:github/fransking/flink-statefun-tasks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fransking%2Fflink-statefun-tasks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fransking%2Fflink-statefun-tasks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fransking%2Fflink-statefun-tasks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fransking%2Fflink-statefun-tasks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fransking","download_url":"https://codeload.github.com/fransking/flink-statefun-tasks/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fransking%2Fflink-statefun-tasks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31637748,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"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":["flink","python","statefun"],"created_at":"2025-12-13T20:41:19.888Z","updated_at":"2026-04-10T10:03:08.646Z","avatar_url":"https://github.com/fransking.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Flink Tasks\nTasks API for Stateful Functions on Flink\n\n## What is it?\n\nA lightweight API that borrows concepts from Celery to allow Python developers to run task based workflows on Apache Flink Stateful Functions.  Workflows are composed of Tasks which accept parameters and can be chained together as continuations into a Pipeline.  The Pipeline becomes the Flink state.\n\n\n```\n@tasks.bind()\ndef greeting_workflow(first_name, last_name):\n    return say_hello.send(first_name, last_name).continue_with(say_goodbye)\n\n\n@tasks.bind()\ndef say_hello(first_name, last_name):\n    return f'Hello {first_name} {last_name}'\n\n\n@tasks.bind()\ndef say_goodbye(greeting):\n    return f'{greeting}.  So now I will say goodbye'\n```\n\nTry the [demo](https://flink-demo-az.sbbsystems.co.uk).\n\nAdditional documentation can be found [here](https://fransking.github.io/flink-statefun-tasks).\n\nThe pipeline function can be downloaded [here](https://github.com/fransking/flink-statefun-tasks-embedded).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffransking%2Fflink-statefun-tasks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffransking%2Fflink-statefun-tasks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffransking%2Fflink-statefun-tasks/lists"}