Commit Graph

298 Commits

Author SHA1 Message Date
Gabe Ruttner d8b6843dec feat: streaming events (#309)
* feat: add stream event model

* docs: how to work with db models

* feat: put stream event

* chore: rm comments

* feat: add stream resource type

* feat: enqueue stream event

* fix: contracts

* feat: protos

* chore: set properties correctly for typing

* fix: stream example

* chore: rm old example

* fix: async on

* fix: bytea type

* fix: worker

* feat: put stream data

* feat: stream type

* fix: correct queue

* feat: streaming payloads

* fix: cleanup

* fix: validation

* feat: example file streaming

* chore: rm unused query

* fix: tenant check and read only consumer

* fix: check tenant-steprun relation

* Update prisma/schema.prisma

Co-authored-by: abelanger5 <belanger@sas.upenn.edu>

* chore: generate protos

* chore: rename migration

* release: 0.20.0

* feat(go-sdk): implement streaming in go

---------

Co-authored-by: gabriel ruttner <gabe@hatchet.run>
Co-authored-by: abelanger5 <belanger@sas.upenn.edu>
2024-04-01 15:46:21 -04:00
abelanger5 7b7fbe3668 fix: update Requeue and Reassign logic to fix performance degradation when many events are queued (#310)
Logic for requeueing and reassigning did not limit the number of step runs to requeue, so when events accumulate with no worker present it causes memory to spike along with a very high query latency on the database. This commit limits the number of step runs returned in the requeue and reassign queries, and also properly locks step run rows for these queries so only a step run in a PENDING or PENDING_ASSIGNMENT state can be requeued.

It also improves performance of the `AssignStepRunToWorker` query and ensures that `maxRuns` on workers are always respected through the introduction of a `WorkerSemaphore` model. The value gets decremented when a step run is assigned and incremented when a step run is in a final state. 

Co-authored-by: Luca Steeb <contact@luca-steeb.com>

* Update controller.go

---------

Co-authored-by: steebchen <contact@luca-steeb.com>
v0.18.1
2024-04-01 12:33:18 -04:00
dependabot[bot] e385e098af chore(deps): bump github.com/go-co-op/gocron/v2 from 2.1.2 to 2.2.9 (#319)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 17:14:45 +07:00
Luca Steeb dada779f6d ci(github): add dependabot config with actions and gomod (#306)
Co-authored-by: abelanger5 <belanger@sas.upenn.edu>
2024-04-01 09:34:50 +00:00
abelanger5 cdf203dc3e feat: new listen strategy with worker-side heartbeats (#308) 2024-03-31 22:45:10 -04:00
Luca Steeb 8183dd509a test(rampup): add load ramp up test (#273)
* test(rampup): add load ramp up test

* disable debug logging

* actual implementation

* refactor

* max acceptable schedule

* check for non-executed events

* fixes

* chore: set log level to error in engine tests

---------

Co-authored-by: abelanger5 <belanger@sas.upenn.edu>
2024-03-31 19:14:30 -04:00
Luca Steeb cb15fff91f chore(docs): fix formatting in child-workflows.mdx (#307) 2024-03-30 17:17:41 -04:00
gabriel ruttner bfa867408f fix: await gather 2024-03-29 14:27:48 -07:00
abelanger5 c1b1edcfad Update child-workflows.mdx 2024-03-29 17:14:53 -04:00
Alexander Belanger be3388f7f0 fix: linting errors on docs v0.18.0 2024-03-29 14:07:39 -07:00
abelanger5 d917ebdda0 docs: child workflows (#302)
* docs: spawn and join

* lint: prettier

* docs: insert video for launch post

* chore: address feedback

* docs: clean up go example

* Update child-workflows.mdx
2024-03-29 14:07:39 -07:00
Gabe Ruttner d426c9316d feat(py-sdk): spawn and join (#299)
* chore: expose full client to context

* chore: update protos

* feat: add parent options to trigger

* feat: example fanout worker

* fix: typehint

* feat: add spawn workflow to context

* wip: polling and streaming

* fix: correct request

* chore: rm logging

* feat: working polling

* feat: functional polling

* chore: separate connection

* feat: functional streaming and listening

* fix: get result payload

* fix: increased initial poll interval

* release (py): 0.19.0

---------

Co-authored-by: gabriel ruttner <gabe@hatchet.run>
2024-03-29 14:07:39 -07:00
abelanger5 77e5d2b77c feat(go-sdk): spawnWorkflow method and get up to speed with other sdks (#297)
* feat(go-sdk): spawnWorkflow method and get up to speed with other sdks

* fix: manual trigger example

* fix: linting errors

* fix: double serialization from go sdk

* fix: spawn workflow logic and procedural example

* test(e2e): add procedural test

* fix: panic in e2e test

* fix: e2e test preparation

* fix: api server url in test.yml

* fix: load test server url

* chore: make num children configurable

* address pr review
2024-03-29 14:07:39 -07:00
abelanger5 0daa62974a feat(frontend): basic list of child workflows (#293) 2024-03-29 14:07:39 -07:00
abelanger5 ad9e9aedbf feat(engine/api): implementation of child/parent workflow runs (#292) 2024-03-29 14:07:39 -07:00
abelanger5 70a05f86cf feat: contracts for spawn/join feature (#290)
* feat: contracts for spawn/join feature

* add parent step run ids to model

* add parent ids to schedule request
2024-03-29 14:07:39 -07:00
dependabot[bot] e02a326821 chore(deps): bump github.com/jackc/pgx/v5 from 5.5.0 to 5.5.4 (#304)
Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.5.0 to 5.5.4.
- [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jackc/pgx/compare/v5.5.0...v5.5.4)

---
updated-dependencies:
- dependency-name: github.com/jackc/pgx/v5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: abelanger5 <belanger@sas.upenn.edu>
2024-03-29 13:19:08 -04:00
dependabot[bot] 4929483913 chore(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0 (#303)
Bumps google.golang.org/protobuf from 1.32.0 to 1.33.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-29 13:04:26 -04:00
abelanger5 9c31fdf0f6 fix: assigned step runs not timing out or reassigned (#301)
* fix: assigned step runs not timing out or reassigned

* fix: regenerate sqlc
v0.17.3
2024-03-27 21:03:24 -04:00
abelanger5 1a5e9e07a0 fix: list methods should select distinct step run ids (#300)
* fix: list methods should select distinct step run ids

* fix: remove unnecessary distinct ons
2024-03-27 20:59:09 -04:00
abelanger5 5f1f59b1e6 fix: onboarding redirect and expired link bugs (#286)
Co-authored-by: Gabe Ruttner <gabriel.ruttner@gmail.com>
v0.17.2
2024-03-25 12:41:28 -04:00
Gabe Ruttner 1dccc387b0 feat(py): schedule_workflows (#287)
* feat: schedule workflows

* docs: delay events

* fix: linting

* release: py 0.18.0
2024-03-22 20:46:20 -04:00
Luca Steeb 82cb1c0936 chore(docs): add and run prettier (#284) 2024-03-22 23:04:19 +07:00
abelanger5 df52bad9e8 fix: timeout zero values (#283) v0.17.1 2024-03-21 18:21:07 -04:00
abelanger5 092f54c64f refactor: separate api and engine repositories, change ticker logic (#281)
* 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
v0.17.0
2024-03-21 14:10:34 -04:00
Luca Steeb f82cfb4eef feat(repository): cache engine-relevant methods (#270) 2024-03-21 17:09:59 +00:00
g 617a306b13 docs: fix worker start 2024-03-20 18:04:56 -07:00
abelanger5 65224753c1 fix(go-sdk): support tls strategy of none, with docs (#269)
* fix(go-sdk): support tls strategy of none, with docs

* chore: errorf -> sprintf in examples

* Apply suggestions from code review

Co-authored-by: Luca Steeb <contact@luca-steeb.com>

* fix: remove time from example

---------

Co-authored-by: Luca Steeb <contact@luca-steeb.com>
v0.16.2
2024-03-18 14:02:53 -04:00
Luca Steeb d91a8d7bc3 fix: handle inefficient assignments (#263) 2024-03-16 17:09:35 +07:00
abelanger5 d9360520de chore: add better telemetry to database (#268)
* chore: add better telemetry to database

* fix: span end on query
2024-03-15 15:08:40 -04:00
Luca Steeb d577b5f34c fix(cli): make server config cleanup properly (#267) 2024-03-14 17:46:01 +07:00
abelanger5 d7e6e4d8c6 fix: worker locking on requeues (#265)
* fix: worker locking on requeues

* chore: add alerter to dispatcher
v0.16.1
2024-03-13 21:50:02 -04:00
Luca Steeb f1d193a32d fix(docs): adapt home sdk redirect (#262) 2024-03-13 22:22:40 +07:00
abelanger5 c66f97c856 fix: deadlocks on workers and tickers (#241)
* chore: add sentry support to engine

* fix: deadlocks on workers and tickers

* refactor: reduce prisma calls in engine

* trigger

* fix: remove some tenant lookups

* feat: dlx and renamed taskqueue -> msgqueue

* refactor: get group key run logic

* fix: retry counts on messages and concurrency edge cases

* fix: rabbitmq integration tests

* feat: add consumer timeouts

---------

Co-authored-by: Luca Steeb <contact@luca-steeb.com>
v0.16.0
2024-03-12 00:45:18 -04:00
abelanger5 a982ff26dd Update pyproject.toml 2024-03-11 13:21:02 -04:00
abelanger5 5ddc9f80d8 feat(python-sdk): logs api endpoint (#253) 2024-03-11 13:20:38 -04:00
Luca Steeb 628180b42c fix(controller): attempt to fix data race (#247) 2024-03-11 16:01:36 +07:00
Ikko Eltociear Ashimine 30fc42174b chore: fix typo in .gitignore (#252)
sentitive -> sensitive
2024-03-10 14:21:24 -04:00
abelanger5 5291f3fa7c Update README.md 2024-03-09 16:18:14 -05:00
abelanger5 0f31758042 Update README.md 2024-03-09 16:16:46 -05:00
g 6cc8bd1e3a fix: deadlink 2024-03-08 17:16:25 -08:00
g ae00b16cc3 fix: doc dead-link 2024-03-08 09:56:39 -08:00
abelanger5 2d1fa235e6 Update README.md 2024-03-08 12:46:48 -05:00
Luca Steeb c2b42508be fix(typescript-sdk): extract typescript sdk into separate repo (#239) 2024-03-08 16:04:38 +07:00
Luca Steeb 78962596aa fix(engine): do not panic on regular exit (#242) 2024-03-08 14:46:56 +07:00
Luca Steeb c7cdc8aa5d fix(engine/health): listen before serving (#243) 2024-03-08 14:46:47 +07:00
g f3769a47fa release: py 0.15.4 2024-03-07 17:02:49 -08:00
g 49f16ba953 fix: register timeout 2024-03-07 17:02:32 -08:00
abelanger5 38688adce5 feat: sns integrations from frontend (#249) v0.15.2 2024-03-07 18:52:08 -05:00
g 92330002c0 release: py 0.15.3 2024-03-07 14:01:47 -08:00