Java vs Flow vs PLS

My thoughts.

As a thumb rule, go with the out-of-the-box features/services provided by the product (flow services) if it meets your requirement and leverage the product fully.

Write your custom java services class only if there is are no services to support the need.