We need to have a DistributedCache-based artifact service to ship with the portable Flink runner. The DistributedCache is a perfect fit for Flink because it comes for free and is the mechanism that Flink already uses to distribute its own artifacts.
The final artifact service implementation should be pluggable, but using the DistributedCache allows the Flink runner to work without additional external dependencies (beyond perhaps Docker).
Imported from Jira BEAM-3672. Original Jira may contain additional context.
Reported by: bsidhom.