Fn Execution APIs should not depend on the Java SDK
- Dominant language
- Java
- Stars
- 8.7k
- Forks
- 4.7k
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 205
Description
Runners should be able to interact with the Fn API with complete ignorance of the underlying SDK, and as such should not obtain a dependency on the Java SDK.
This dependency edge should be banned. This will also require moving shared model abstractions which require code execution to a module on which both fn execution APIs and the Java SDK can depend on.
NOTE: the current state of this change requires either factoring of Coder, BoundedWindow, and associated runner-relevant code to a common location. Currently, these dependency edges exist to reduce work required to encode and decode these elements and minimize duplication between the runner and SDK for model-level concepts.
Imported from Jira [BEAM-3146](https://issues.apache.org/jira/browse/BEAM-3146). Original Jira may contain additional context.
Reported by: tgroh.
Contributor guide
Research direction
Start by mapping the dependency between the Fn Execution APIs, runners, and the Java SDK, then inspect the current locations of Coder, BoundedWindow, and related runner model abstractions. Done means the Fn Execution APIs no longer depend on the Java SDK and the shared abstractions are moved to a common module without duplicating model-level encoding and decoding logic.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend-api-design, distributed-systems
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100