Skip to content

Reliable, Efficient and Idempotent Distribution of Laborious, Runtime-Error-Ridden Jobs

License

Notifications You must be signed in to change notification settings

mrkagelui/alfred

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub go.mod Go version GitHub made-with-Go

Reliable, Efficient and Idempotent Distribution of Laborious, Runtime-Error-Ridden Jobs

This project demonstrates the idea of leveraging an RDBMS (PostgreSQL here) to achieve job distribution without the use of message queues.

A more detailed explanation and motivation can be found at https://www.linkedin.com/pulse/db-mq-reliable-task-distributions-poc-jason-lui-1zmzc/.

To see the implementation of the handling, you may just read handle/handle.go. The rest of this repo exists only to make it runnable.

How to run

Prerequisites

  • Go (1.22)
  • Docker
  • GNU make utility (optional, it only makes the commands shorter)

To run the project, use the following command

make run

with the default config. Check out the top part of main.go, struct config for the list of environment variables.

To override some of them, run it like

SEED_SIZE=1000 make run

Sequence Diagram

The project implements the following sequence

About

Reliable, Efficient and Idempotent Distribution of Laborious, Runtime-Error-Ridden Jobs

Topics

Resources

License

Stars

Watchers

Forks