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
culture? • Can you define clear boundaries for your internal domain? • Do you have a reasonable sized team? • Is your application more resource heavy in certain contexts?
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
ONLY for reporting / business intelligence • Amazon Redshift • Google BigQuery • Do not use this data for transactional information • Automatically updated views/queries for reporting • Stream processing of events for eventual consistency
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 ◦ Or at least a versioned API with spec • Expose your MicroService API via a public API • Only need to update the SDK • Provide a mock service for development