Understanding @serve.deployment

To deploy your Serve application, you would first need to call bind() to create the application object. Then you can call serve.run to deploy them. Basically instead of calling those .deploy() and .get_handle() you can do the following

# create Serve applications
father_app = Father.bind()
son_app = Son.bind()

# Deploy the application and get the handles
father_handle = serve.run(father_app)
son_handle = serve.run(son_app)

Then you can do your workflow and call those remote functions.

Also note you can pass the deployment handle in the constructors if you are trying to do model compositions. More details on this doc Deploy Compositions of Models — Ray 2.35.0