Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Typed input and output

Open
#244 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
ruby

Research direction

Start with lib/temporal/concerns/typed.rb at line 22 and review how activities and workflows currently handle input and output serialization. The issue needs an agreed approach for reusable dry-struct validation, typed outputs, and validation before workflow activation; done should include a defined API and tests for each behavior.

Written by the indexing model from the issue text.

Description

Hi! I am trying to get rid of JSON.parse(input) and JSON.dump(output) in activities/workflows and wanted to define Input and Output classes with dry-struct to define the structure.

Then I found this line in https://github.com/coinbase/temporal-ruby/blob/master/lib/temporal/concerns/typed.rb#L22

unless klass.is_a?(Dry::Types::Type)

Now I am stuck on how to make reusable structs with validation for workflow/activity params. I have three questions:

  1. Does it make sense to change condition in typed.rb to allow dry structs?
  2. How I can add typed output, so I don't need to serialize and deserialize outputs multiple time?
  3. Any best practices to validate inputs before activating the workflow?

Any ideas how to solve this?

Dominant language
Ruby
Stars
287
Forks
113
PR merge metrics
No merged PRs in 30d

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from coinbase/temporal-ruby

All issues in coinbase/temporal-ruby

Similar issues

More Ruby issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.