Commit Graph
51 Commits
Author SHA1 Message Date
Nuno Campos 0b74e25f72 Remove send v2 2025-01-14 15:49:57 -08:00
Nuno Campos 4e8f4ce440 Update 2024-12-04 15:39:16 -08:00
Nuno Campos b4b3ac6f57 lib: Merge GraphCommand and Command
- Now we have only Command
- Command(goto=) combines the previous functionality of Command(send=) and Command(goto=)
2024-12-04 15:12:03 -08:00
Nuno Campos 5c7a6689af Update tests 2024-12-04 14:41:30 -08:00
Nuno Campos c83b8f6d04 Update 2024-11-11 17:49:58 -08:00
Nuno Campos 2ff49d2200 Update 2024-11-11 15:43:20 -08:00
Nuno Campos ea64ac5c07 Update 2024-11-11 14:18:14 -08:00
Nuno Campos 89a0859928 Execute Sends in same super step that triggered them
- Keep old code path for compatibility with existing checkpoints
- Keep a similar order of application of updates, in some cases there will be no visible change
- Update task path for Sends to contain the path of all the parent tasks (multiple parents when a Send task creates another Send)
- That lineage path is used to ensure order of application of updates respects their logical lineage (ie updates from parents always applied before their child tasks)
- Move Interrupt writes to use negative indexes, which allow replacing/shadowing (when task is re-run it may interrupt again, or succeed)
- Runner will now attempt to schedule new Send tasks as soon as the write is received (ie while the originating node is still running)
- Update kafka scheduler to support new Send behavior
2024-11-11 14:01:16 -08:00
Nuno Campos 19cc95f7b6 kafka: Add missing task id for TaskNotFound error 2024-11-06 16:41:43 -08:00
Vadym BardaandGitHub def3e06b4a move py.typed to submodules for namespace packages (#2177) 2024-10-24 13:43:43 -04:00
Nuno Campos 42648c88dd lib: Add max_concurrency for async executions 2024-10-19 12:45:01 -07:00
Nuno Campos d48faecd42 Fix 2024-10-14 17:16:32 -07:00
Nuno Campos 5e175e098b Update kafka 2024-10-14 17:10:10 -07:00
Nuno Campos e5b4cd2701 scheduler-kafka: Pass loop arg to default async consumer and producer
- Some forks of aiokafka make this a required arg
2024-10-07 10:16:36 -07:00
Nuno CamposandGitHub b1a4243055 Implement new Store interface (#1834) 2024-09-29 17:06:42 -07:00
Nuno Campos 74f34db9e4 Fix sync kafka 2024-09-22 12:04:43 -07:00
Nuno Campos 644f14991e Fix kfka 2024-09-22 12:04:17 -07:00
Nuno Campos 30b631aaff Rewrite imports 2024-09-21 17:41:05 -07:00
Nuno Campos d9854b36eb Move to langgraph.types 2024-09-21 17:37:17 -07:00
Nuno CamposandGitHub 3b05279e32 Implement serialization with msgpack library (#1716)
* Implement serialization with msgpack library

- encode custom python objects with a msgpack extension type, with constructor path string, and args encoded as nested msgpack doc

* Smaller msgpack extension types

* Update lock files

* lock

* Don't delegate to pydantic json

* Fix kafka serde

- should use our serializer to load, as inputs to subgraphs are serialized using it
2024-09-16 14:06:42 -07:00
Nuno Campos 571623442a Avoid closing drain before seeing first message in either topic 2024-09-11 16:45:43 -07:00
Nuno Campos dd68babac7 kafka: Expose finally_send as public api
- Enables attaching a list of messages (topic/key/value) to send when run finishes
2024-09-11 16:31:35 -07:00
Nuno Campos 4accc19734 kafka: Implement sync orchestrator and executor classes 2024-09-11 16:06:50 -07:00
Nuno Campos 217b07ae65 kafka: Make consumer and producer classes configurable
- Define protocol for sync and async producer and consumer
- Accept consumer/producer as init args in Orchestrator/Executor
- If not passed in, create default consumer/producer as before
2024-09-11 14:27:08 -07:00
Vadym BardaandGitHub f3b5d804ab ci: fix kafka scheduler, split langgraph and kafka into separate test jobs (#1677) 2024-09-11 10:55:11 -04:00
Nuno Campos 5de46f7472 Update stop condition for drain 2024-09-10 16:52:09 -07:00
Nuno Campos bdabb723b0 Add langgraph dep 2024-09-10 16:39:34 -07:00
Nuno Campos edc0fd0210 Remove extraneous asserts 2024-09-10 16:20:45 -07:00
Nuno Campos 3886b76771 Lint 2024-09-10 16:17:22 -07:00
Nuno Campos 3a65460767 Use anyio for timeout in dran test helper 2024-09-10 16:17:22 -07:00
Nuno Campos 5e0273886e Lint 2024-09-10 16:17:22 -07:00
Nuno Campos 943cc4d83a Add readme, lint 2024-09-10 16:17:22 -07:00
Nuno Campos 98b8595a94 Move to dev deps 2024-09-10 16:17:22 -07:00
Nuno Campos f7dffa023c Implement subgraph delegation for distributed arch 2024-09-10 16:17:22 -07:00
Nuno Campos 7dc69a543d Rename 2024-09-10 16:17:22 -07:00
Nuno Campos 8f91402642 Use thread_id for partition key, ignore tasks for stale checkpoints 2024-09-10 16:17:22 -07:00
Nuno Campos 030d6d2def Fix subgraph test 2024-09-10 16:17:22 -07:00
Nuno Campos ad7dd0dbb7 Add drain_topics test helper 2024-09-10 16:17:22 -07:00
Nuno Campos 0eb11a3cf9 Remove is_resuming arg 2024-09-10 16:17:22 -07:00
Nuno Campos b13db42568 WIP Subgraphs 2024-09-10 16:17:22 -07:00
Nuno Campos 83d36761a4 Rename compose projects 2024-09-10 16:17:22 -07:00
Nuno Campos d206621230 Rename test 2024-09-10 16:17:22 -07:00
Nuno Campos 8e6caab78c Add test for interrupts 2024-09-10 16:17:22 -07:00
Nuno Campos ad463ec90a Add more test assertions 2024-09-10 16:17:22 -07:00
Nuno Campos 2d02e5e0c5 Add error topic, add retries (eg for checkpointer database exceptions) 2024-09-10 16:17:22 -07:00
Nuno Campos 5b3bd920d8 Catch errors thrown by nodes run by Executor 2024-09-10 16:17:22 -07:00
Nuno Campos f09b130837 Use pool for postgres checkpointer 2024-09-10 16:17:22 -07:00
Nuno Campos e6d6f565a5 Improvements to consumer and producer patterns
- await future returned by send() instead of flush()
- use consumer groups by default
- process tasks in batches by default, configurable
- manually commit offsets when batch is processed
2024-09-10 16:17:22 -07:00
Nuno Campos dc5be3fd58 Rename 2024-09-10 16:17:22 -07:00
Nuno Campos 381ea9cec8 Rename 2024-09-10 16:17:22 -07:00