Running python script in phoenix project on fly.io

There isn’t a best practice I guess, any of the solutions you listed have their pros and cons. I would also add gRPC to the list.

I explored a REST API, Ports, but ended up with gRPC, I feel it’s the “cleaner” solution to integrate external services I control in terms of interoperability and resilience.