into a suite of small, independent services. Independent applications with no dependencies on any other services. Exposed via a pre-defined API for external consumers
to do, the less complex it (should) be • Easier to understand the purpose of the code • Separate teams based on service boundaries • Manage knowledge within teams easier • Designate internal leaders to manage workflow
they’re easier to test Unit tests are easier as you know the boundaries of each individual service and it’s collaborators Functional tests are nearly impossible
as your system requires • Build domain logic to handle commands/writes • Reads interact directly with the data-store • Use whatever data-store makes sense for the read model
framework being employed to build an application • Expose your MicroService API via methods • Only need to update the SDK • Provide Mock data for development