{"id":21770241,"url":"https://github.com/jonathan-foucher/spring-boot-redis-stream-example","last_synced_at":"2026-03-16T06:11:40.152Z","repository":{"id":247153962,"uuid":"825093126","full_name":"jonathan-foucher/spring-boot-redis-stream-example","owner":"jonathan-foucher","description":"An example of queueing jobs with a redis stream","archived":false,"fork":false,"pushed_at":"2025-11-23T13:36:20.000Z","size":34,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-23T15:09:21.116Z","etag":null,"topics":["java","queued-jobs","redis-stream","spring-boot","valkey"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jonathan-foucher.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-07-06T18:47:29.000Z","updated_at":"2025-11-23T13:38:20.000Z","dependencies_parsed_at":"2025-01-26T03:10:25.541Z","dependency_job_id":"27031de1-7c96-4f17-a441-a7e2b04efa8d","html_url":"https://github.com/jonathan-foucher/spring-boot-redis-stream-example","commit_stats":null,"previous_names":["jonathan-foucher/spring-boot-redis-stream-example"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jonathan-foucher/spring-boot-redis-stream-example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathan-foucher%2Fspring-boot-redis-stream-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathan-foucher%2Fspring-boot-redis-stream-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathan-foucher%2Fspring-boot-redis-stream-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathan-foucher%2Fspring-boot-redis-stream-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonathan-foucher","download_url":"https://codeload.github.com/jonathan-foucher/spring-boot-redis-stream-example/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathan-foucher%2Fspring-boot-redis-stream-example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30570308,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-16T06:02:37.763Z","status":"ssl_error","status_checked_at":"2026-03-16T06:02:14.913Z","response_time":96,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["java","queued-jobs","redis-stream","spring-boot","valkey"],"created_at":"2024-11-26T14:11:48.265Z","updated_at":"2026-03-16T06:11:40.144Z","avatar_url":"https://github.com/jonathan-foucher.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Introduction\nThis project is an example of Redis / Valkey stream implementation with Spring Boot.\n\nThe objective is to create a queue for jobs to be processed one by one in the produced order.\nIf the app restart, it must process the job that was currently active and continue.\nThe app should also be able to return what jobs are currently queued and not allow to add an already queued job.\n\nAn endpoint allows to post a job in the queue and the consumer will automatically process it.\nThe producer and consumer are both set on the same project on this example.\n\n## Run the project\nValkey is a free open-source project forked from Redis.\nIf you prefer, you can choose to run Redis instead.\n\nYou will need to launch a Valkey instance on your computer before running the project.\n\nYou can either install Valkey directly on your machine or run it through Docker :\n`docker run -p 6379:6379 valkey/valkey`\n\nOnce Valkey is launched, you can start the Spring Boot project and start posting HTTP requests on the endpoint:\n```\ncurl --request POST \\\n  --url http://localhost:8080/redis-stream-example/v1/jobs/start \\\n  --header 'Content-Type: application/json' \\\n  --data '{\"id\": 1, \"name\": \"some job name\"}'\n```\n\nThere is also an endpoint to retrieve all queued jobs ids:\n```\ncurl --request GET \\\n  --url http://localhost:8080/redis-stream-example/v1/jobs/queued\n```\n\nA custom health checker was added to check if the stream subscription is still active\nIt might be inactive when connection to valkey is lost and won't recover the subscription\n```\ncurl --request GET \\\n  --url http://localhost:8080/redis-stream-example/actuator/health\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathan-foucher%2Fspring-boot-redis-stream-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonathan-foucher%2Fspring-boot-redis-stream-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathan-foucher%2Fspring-boot-redis-stream-example/lists"}