OpenTracing / Context propagation support
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- ruby
- Domain
- distributed-systems, observability-sre
Research direction
No files or tests are named; begin by reviewing the Ruby SDK's workflow and activity configuration and how Temporal headers are handled. The issue is not ready to implement yet: the workflow configuration interface is still unfinished, and completion would require an agreed design for automatic context propagation plus workflow and activity methods for extending existing context.
Written by the indexing model from the issue text.
Description
As suggested by @jeffschoner-stripe and @drewhoskins-stripe, I am creating a github issue to discuss the topic of context propagation for the Ruby SDK.
Tracing Proposal
Why
Distributed applications are more difficult to measure and debug due
to the distributed nature of their processing. One cannot simply
attach to the running process with a debugger and capture state
since that state may be spread across multiple processes or systems.
Temporal, by its nature, is distributed. Any application written using
Temporal will also be distributed. In order to trace through the
behavior of the business logic implemented as workflow(s) and
activit(ies) we should provide support for OpenTracing and other
related tracing mechanisms.
The Java, Go, and Typescript SDKs all support OpenTracing today via
context propagation. The Ruby SDK can support Tracing today without
any changes merely by allowing the programmer to pass the Tracing
context as an argument to every workflow and activity. This is sloppy
and error prone, so we should mimic the facilities exposed by the
aforementioned SDKs and allow the context to propagate automatically
using the Temporal headers.
What
This defines the interface for passing in OpenTracing contexts to
the Temporal system. Upon configuration, the propagation of this
information should be automatic and transparent to the programmer.
Aside from initial configuration, methods should be exposed on
the workflow and activity that allow for adding to the existing
(if any) context.
Workflow Configuration
Will fill this out in next edit... thinking about it.
- Dominant language
- Ruby
- Stars
- 287
- Forks
- 113
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from coinbase/temporal-ruby
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
coinbase/temporal-ruby#361 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 35/100
coinbase/temporal-ruby#341 ·
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
coinbase/temporal-ruby#328 · 1 comment ·
-
NoMethodError when await_workflow_result is called for long running workflowsPossibly taken @iekundayo claimed this 718 days ago. Open
Difficulty 3/5 1-2 days Newbie friendliness 45/100
coinbase/temporal-ruby#326 · 1 comment ·
-
Difficulty 4/5 3-5 days Newbie friendliness 25/100
coinbase/temporal-ruby#324 · 3 comments · 2 reactions ·
All issues in coinbase/temporal-ruby
Similar issues
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
NatLabRockies/OpenStudio-HPXML#2284 ·
-
aikido security:critical
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
dequelabs/axe-core-gems#532 ·
-
print_table with indent and truncate lets lines run up to indent characters past the widthPossibly taken @sebxt claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
phusion/passenger-docker#480 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
Maintainers usually reply within 5 days