Microservices are not for everyone, but there are some incredible benefits to employing microservice architecture principles to enable co-evolution of services and features and reduce friction during the DevOps cycle. The growth of moving parts, however, does require tight DevOps procedures, and visibility into system operations including diagnostics, application events and audit trail. Event streaming can enhance your solution enabling async processing and scale, but also enhancing visibility to the solution as a whole. The good news is that if you are already designing a solution based on microservice principles, you are already positioned to incorporate events with less pain. Services that "fit in your head" lead to a manageable approach to introducing event-based strategies. In this session you'll learn how to design a microservices solution with Docker, that relies on event streams to produce workflow state, history and full audit. You'll see patterns for structuring your solutions, managing events and payloads, designing your eventual consistency strategy, and producing full history and audit logs for the solution.
6. 6/14/2018
6
Distributed Data…
not a new problem…
Enterprise Architect view of SOA
Business
Data
BusinessBusiness
DataData
Services ServicesServices
Data
Access
Data
Access
Data
Access
CRM CMSERP
10. 6/14/2018
10
Data DataData
Service ServiceService
Client
eventually consistent views
Microservices And Eventual Consistency
Data DataData
Service ServiceService
Client
Aggregate
Data
Reporting
Service
Reporting
Client
projecting to aggregate store
Microservices And Eventual Consistency
11. 6/14/2018
11
Design without data constraints
Identifying Business Domains
Customer
Management
Product
Catalogue
Shopping
Cart
Recommendations
Supply Chain
Management
Order
Fulfillment
Identity
Management
Payment
Identity
Management
12. 6/14/2018
12
Identity Management Domain
User
Self-Service
User
Management
User
Single Sign-On
User
Permissions
Login
Security protocols
…
Create users
Activate / deactivate users
…
Register account
Forgot password
…
Permissions per app
…
User
Permissions
User
Profile
Profile, accounts
…
Identity Management Domain
User
Self-Service
User
Management
User
Single Sign-On
User
Permissions
Login
Security protocols
…
Create users
Activate / deactivate users
…
Register account
Forgot password
…
Permissions per app
…
User
Permissions
User
Profile
Profile, accounts
…
Users
Profile
Permissions
13. 6/14/2018
13
Identity Management Domain
User
Self-Service
User
Management
User
Single Sign-On
User
Permissions
Login
Security protocols
…
Create users
Activate / deactivate users
…
Register account
Forgot password
…
Permissions per app
…
User
Permissions
User
Profile
Profile, accounts
…
Users
Profile
Permissions
IdentityServer
Web
Config API User API
UsersConfig
User
Management
Web
Config
Web
User
Self-Service
Web
Shared Services
14. 6/14/2018
14
IdentityServer
Web
Config API User API
UsersConfig
User
Management
Web
Config
Web
User
Self-Service
Web
Config
Management
API
User
Management
API
User
Self-Service
API
Shared Aggregates
Config
Runtime
API
User
Runtime
API
UsersConfig
IdentityServer
Web
User
Management
Web
Config
Web
User
Self-Service
Web
Config
Management
API
User
Management
API
User
Self-Service
API
Isolated Services / Data
Config
Runtime
API
User
Runtime
API
UsersConfigConfig
Config
Runtime
User
Runtime Users
User
Self-
Service
16. 6/14/2018
16
Achievement unlocked…
every service owns its data
Now what?
IdentityServer
Web
User
Management
Web
Config
Web
User
Self-Service
Web
Config
Management
API
User
Management
API
User
Self-Service
API
Eventual consistency
Config
Runtime
API
User
Runtime
API
Users DB
Config
DBConfig
Config
Runtime
User
Runtime Users
User
Self-
Service
Add App
Remove App
Register
Confirm Email