Optional makes a missing method result explicit. Build it with ofNullable when a lookup can return null, then use map to transform a present value and filter to keep only a usable one. A blank string and a missing value are different until your contract says to treat them alike.
A second lookup often already returns an Optional. Use flatMap to join that result rather than creating a nested container. Fallbacks have an execution rule too: orElse evaluates its argument before the method call, while orElseGet calls its supplier only when the Optional is empty. Use the lazy form when the fallback performs work or records an attempt. The final task checks the supplier call count as well as the chosen value.