feat: add Effect-native client, contract, and worker packages#112
feat: add Effect-native client, contract, and worker packages#112bweis wants to merge 3 commits intobtravers:mainfrom
Conversation
- Introduced a new packages for an Effect-native typed Temporal client, enabling seamless interaction with workflows using Effect's error handling and type safety. - Added necessary dependencies and configurations in package.json and pnpm-lock.yaml. - Created initial structure including README, TypeScript configuration, and test setup. - Implemented core functionality for executing and starting workflows with typed inputs and outputs. - Added error handling classes for better error management in workflow execution. This package serves as a foundational component for building Effect-native applications with Temporal.
|
Thank you for your contribution! I'm not deeply familiar with EffectTS, but providing an EffectTS version was actually something I had in mind for the future. I have two questions though. The first one is about the contract itself: right now the contract is agnostic of the scehma validation library used because it relies on Standard Schema, and I'm not sure this pattern can be followed with EffectTS. How would you approach that? The second one is about the client and worker implementation. I think it would be valuable to have a reference implementation — the EffectTS version could be a good candidate for that — and then derive the other implementations from it. This way we'd share the core logic and guarantee a consistent feature set across all implementations. What do you think? |
Introduces three new packages — @temporal-contract/contract-effect, @temporal-contract/client-effect, and @temporal-contract/worker-effect — providing a fully Effect-native alternative to the existing @swan-io/boxed-based stack