title: Microservice that starts up other microservices
body: <p>I currently have a monolith application, which has a thread running per customer. Each time a new customer registers, you start up a new thread; each time they send in information (make an order, change details,etc.) The message is routed to the correct thread; and each time they unregister the thread shuts itself down.</p>
  
  <p>I have a routing thread that does the thread and message management.</p>
  
  <p>It seems, with my limited knowledge of microservices, that this is a prime candidate for converting to a microservices architecture - I have a set of independent processes (customer threads) running.</p>
  
  <p>As I start looking into it, I was thinking of creating one service that is the equivalent of the "customer thread" - <code>customer microservice instance</code>.</p>
  
  <p>How would you go about spinning up a new <code>customer microservice instance</code> each time a new customer comes along? You could have some kind of <code>manager microservice</code>, but given that the idea is to distribute the <code>customer microservice instance</code>s "in the cloud" (i.e. we shouldn't care about where they are?) This doesn't quite seem to fit with what I've read about microservices and how they work. Or have I misunderstood something? What would be the best approach for distributing this system?</p>
  
  <p>One approach I have considered is having the <code>manager microservice</code> contact a "process starter" service round-robin. the <code>process starter</code> service would have an instance running on each physical server (or in each container), which then starts local <code>customer microservice instance</code>s - but from what I was reading you shouldn't really share a container with multiple microservices?</p>