{"id":34207381,"url":"https://github.com/mrkagelui/alfred","last_synced_at":"2026-03-13T19:02:53.274Z","repository":{"id":240391686,"uuid":"802124173","full_name":"mrkagelui/alfred","owner":"mrkagelui","description":"Reliable, Efficient and Idempotent Distribution of Laborious, Runtime-Error-Ridden Jobs","archived":false,"fork":false,"pushed_at":"2024-05-21T01:28:20.000Z","size":1265,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-21T20:25:50.106Z","etag":null,"topics":["architecture","database","message-queue","poc"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrkagelui.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}},"created_at":"2024-05-17T15:08:45.000Z","updated_at":"2024-06-19T10:17:21.140Z","dependencies_parsed_at":"2024-06-19T10:17:17.045Z","dependency_job_id":"350c6388-e7e4-491f-a378-e7bc05406a9a","html_url":"https://github.com/mrkagelui/alfred","commit_stats":null,"previous_names":["mrkagelui/alfred"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mrkagelui/alfred","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrkagelui%2Falfred","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrkagelui%2Falfred/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrkagelui%2Falfred/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrkagelui%2Falfred/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrkagelui","download_url":"https://codeload.github.com/mrkagelui/alfred/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrkagelui%2Falfred/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30472986,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T17:15:31.527Z","status":"ssl_error","status_checked_at":"2026-03-13T17:15:22.394Z","response_time":60,"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":["architecture","database","message-queue","poc"],"created_at":"2025-12-15T20:02:46.332Z","updated_at":"2026-03-13T19:02:53.260Z","avatar_url":"https://github.com/mrkagelui.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/mrkagelui/alfred)\n![GitHub](https://img.shields.io/github/license/mrkagelui/alfred)\n[![made-with-Go](https://img.shields.io/badge/Made%20with-Go-1f425f.svg)](https://go.dev/)\n# Reliable, Efficient and Idempotent Distribution of Laborious, Runtime-Error-Ridden Jobs\n\nThis project demonstrates the idea of leveraging an RDBMS (PostgreSQL here) to achieve job distribution without the use of message queues.\n\nA more detailed explanation and motivation can be found at https://www.linkedin.com/pulse/db-mq-reliable-task-distributions-poc-jason-lui-1zmzc/. \n\nTo see the implementation of the handling, you may just read [handle/handle.go](handle/handle.go). The rest of this repo exists only to make it runnable.\n\n## How to run\n\n### Prerequisites\n\n- Go (1.22)\n- Docker\n- GNU make utility (optional, it only makes the commands shorter)\n\nTo run the project, use the following command\n```shell\nmake run\n```\nwith the default config. Check out the top part of [main.go](main.go), struct `config` for the list of environment variables.\n\nTo override some of them, run it like\n```shell\nSEED_SIZE=1000 make run\n```\n\n## Sequence Diagram\n\nThe project implements ![the following sequence](images/seq_db_mq.svg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrkagelui%2Falfred","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrkagelui%2Falfred","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrkagelui%2Falfred/lists"}