10. SELF-CONTAINED
• lightweight communication
• independent development
• independent deployment (container, package
manager)
• strict contracts & versions
• one process
• UI & (temporary) store included
11. 12-FACTOR APP
• log to stdout
• bundle config via ENV-Var
• explicit port bindings
• scale via processes
• share nothing
• prefer stateless / temporary
states
• start fast / graceful shutdown
• decouple admin process
12. SYSTEM OF SYSTEMS
• distributed
• integration
• dependencies
• state & consistency
guarantees
• fast releases
• parallel
development
• scale vertical &
horizontal
• resilient
25. MANAGE STATE
• trade off - explicit state
• relaxed consistency
• avoid persistent data
• prefer in-memory + expiry
• prefer replication
26. RESILIENT & SCALE
• failure compensation (retry, fallback, cache, etc.)
• data correlation
• CQRS / ES / LOGS
• client side load balance
• algorithm for traffic distribution (e.g. shards)
• scoring per read and write operations
27. SERVICE TEMPLATE
• rapid application development
• experimental & feasibility development
• batteries includes (UI, Storage, Streams,
Tasks, etc.)
• simple to extend
• simple to deploy