Philosophy of microservicesMicroservice design principlesSingle responsibility principle and domain-driven designEncapsulation and interface segregationCulture of autonomy, ownership, and shared governanceIndependently deployableCulture of automationDesigning for failuresObservabilityBuilding teams to deliver business value fasterBenefits of microservicesAgilityMaintainabilityScalabilityTime to marketTechnology diversityIncreased reliabilityChallenges of microservicesOrganizational cultureAdoption of DevOps practicesArchitectural and operational complexityService orchestration and choreographyObservabilityEnd-to-end testingDouble mortgage periodPlatform investmentMicroservice architecture componentsMessagesPersistence and state managementOrchestrationService discoveryAPI gatewayReviewing leadership responsibilitiesWhat business/technology leaders must knowWhat architects must knowThe role of the product manager, product owner, and scrum masterDefining core priorities for a businessUsing the twelve-factor app methodologyCode baseDependenciesConfigBacking serviceBuild, release, and runProcessesPort bindingConcurrencyDisposabilityDev/prod parityLogsAdmin processesAdditional factors for modern cloud-native appsAPI firstTelemetrySecuritySummaryQuestionsFurther reading