Hello! I'm just getting started with Beam (in java), and have a question about the best way to initialise and keep a local cache.
In my case my DoFn needs to occasionally look up some info in an external service. I have a Service class which interacts with the external service and I have a CachedService which wraps an instance of Service and caches the responses. I want this CachedService to be initialised once per JVM. What's the best way to do this in Beam? Should the cache just be a static field in the DoFn? Or should I be using the DoFn.StartBundle method and initialising the cache in there? What if I want my cache to be used in two separate DoFns (which sometimes run in the same JVM) - how can I ensure one cache per JVM rather than one cache per DoFn? Thanks for any advice, Josh
