Refactors the queueing logic to be fairly balanced between actions, with each action backed as a separate FIFO queue. Also adds support for priority queueing and custom queues, though those aren't exposed on the API layer yet. Improves throughput to be > 5000 tasks/second on a single queue.
---------
Co-authored-by: Alexander Belanger <alexander@hatchet.run>
* feat: allow extending the api server
* chore: remove internal packages to pkg
* chore: update db_gen.go
* fix: expose auth
* fix: move logger to pkg
* fix: don't generate gitignore for prisma client
* fix: allow extensions to register their own api spec
* feat: expose pool on server config
* fix: nil pointer exception on empty opts
* fix: run.go file
* feat: alerting. implements slack alerting, email, and refactors tenant settings to make them more manageable
* chore: generate
* chore: generate sqlc after migrate
* new api-contract for workflow run events
* feat: initial implementation for new subscribe listener
* fix: sync issues and send workflow runs immediately
* refactor: add context to all engine db queries, fix deadlocking query
* fix: use new ctx for deleting dispatcher and ticker
* add cancellation reasons
* fix: docs linting
---------
Co-authored-by: gabriel ruttner <gabriel.ruttner@gmail.com>
* fix: only close sm
* chore: linting
* feat: filter by workflow run status
* feat: radio filter
* feat: filter run by workflow
* fix: rm unused status
* chore: rm comment
* chore: refactor workflow run table
* fix: visibility state
* feat: visibility and reload
* chore: linting
* chore: shared table component
* chore: linting
* chore: clarify nav
* feat: link to workflow dfn
* chore: share workflow run table
* chore: linting
* wip: parent link
* feat: data table card rendering
* feat: expose manual table control
* feat: data table workflow list
* feat: workflow list actions
* feat: worker actions
* fix: toolbar for any option
* fix: rm search
* fix: rm bad filter func
* chore: linting
* fix: link card title
* fix: rm updated at for now
* fix: gen
* refactor: separate api and engine repositories, change ticker logic
* fix: nil error blocks
* fix: run migration on load test
* fix: generate db package in load test
* fix: test.yml
* fix: add pnpm to load test
* fix: don't lock CTEs with columns that don't get updated
* fix: update heartbeat for worker every 4 seconds, not 5
* chore: remove dead code
* chore: update python sdk
* chore: add back telemetry attributes