apache / apache/beam

Fn Execution APIs should not depend on the Java SDK

Open
#18,587 0 comments 0 reactions 0 assignees View on GitHub
bug core P3 runners
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.