What is the correct way of terminating a child process in a supervisor tree-Collection of common programming errors

Lets say I have a Superviser tree with a parent, and some children. The children are transient. but used by other processes. the parent is in charge os pointing the users to the correct child.

User  ---lookup(child)-->  Parent
User  Child
User   Parent --request(Resouce)--> Child
User