A team at the office is developing web micro-services intended to support sales sites and mobile apps with total combined orders count of less than 100K (not sure how much less but greater than 10K) per month.
They are using NodeJS, Docker and AWS. Their idea is that each service will only have one or two endpoints and its own DB.
For example there would be a Tax
service that only GETs the tax calculated for an Order
object, then another PlaceOrder
service receives a POST with an Order
object, possibly another CheckStatus
service would return current status for an Order
object or ID etc.
Each of these services is actually a completely separate NodeJS project, hosted in a separate repo, compiled by a separate Jenkins project and put in its own Docker container, which is then deployed on a server of its own (Beanstalk)
Each of these servers then gets a domain name for each of its deployment phases (DEV, QA, INT, STAGE, PROD), so for the two services we have in the example there are 10 domain names: PHASE.taxService.api.company.com
and PHASE.orderService.api.company.com
Question is: is this a normal practice, do you see benefits or issues with this scenario. Is there a reason to prefer either dev.taxService.api.company.com
or dev.company.com/api/taxService
?