My team is building a tenanted primary service, with shared microservices used by that primary to separate common business tasks. We're building a new microservice that is responsible for running a series of business rules against a primary object in our system. Think of it like the
Order in a shopping cart, and maybe the new service is responsible for doing a set of validation checks on the
We like the microservice idea because we can add new business rules very quickly, without necessarily needing to deploy them to all tenants. We have a number of existing rules to build from, and we expect to need new rules on a very frequent basis, although the amount of data on the
Order entity will change infrequently.
The question -- What is a good way to design the inputs to this service?
- We could pass the new service the entire
Order, but that feels overkill if we only need some of the values on it. (it's a lot)
- On the other hand, we don't want to have to deploy all of the tenanted systems to add a new business rule, so only passing the currently needed values is not enough.
- ?? Your other idea here! I can imagine a great number of complex plans!