The JVM initializer interface: https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/harness/JvmInitializer.html , may be appropriate for process-level one-time initializations. For initializing long-lived or expensive objects (e.g. connections) applicable to a specific DoFn / PTransform, DoFn lifecycle methods are usually more appropriate (see @chamikara's answer).