Book NaN: The Unknown
- 00 Preface
- 01 The Unknown
- 99 The Letting Go
Book I: Feet in the Cloud
- 01 Cloud Computing Evolution
- 02 Compute and Architecture
- 03 Serverless Development
- There is no Right Compute: Serverless Compute by Default
- High Tides, Low Tides: Throughput
- Keep Your Balance: Concurrency Control
- Safer but Slower: Latency
- Irresilient Sessions: Stateless Applications
- Dead or Alive: Persistent Connections
- Applications Decoupled: Infrastructure Integrations
- Not all that Glitters is Gold: Limitations & Refactoring
- 04 Compute Unmanaged
Book II: The Change Factor
- 01 Wasteful Applicative Evolution
- Not Born One: Evolution to a Monolith
- Non Recyclable Waste: Inefficiencies
- Born Together: Evolution to a Bundle
- Non Revertible Waste: A Bundle of Trouble
- Waste Reduction: Unbundling
- Born to Die: Evolution to a Legacy
- Time Moves Forward: Technological Shifts
- Born to Reincarnate: Evolution of a Refactor
- Coming Full Circle: Timing Refactors
- Not a Loss: A Cause for Tension (Appendix)
- Personal Postmortem: It was not a Waste
- 02 The Inevitable
- 03 Change Driven Design
- Adapt to Change: Coding Surrounded by Impermanence
- Distribution of Change: Designing for the Unpredictable
- Intention to Change: Executions of our Troubled Minds
- Spring of Change: The Development Lifecycle
- Exclusivity of Change: Alternative towards Cohesion
- Fragments of Change: Architecture of Products and Organizations
- Separation of Cause: Fallacies of our Designing Minds
- Collision of Causes: Applicative Dichotomy
- Separation of Change: Splitting Products
- Product of Change: Behavioral Applications
- Force of Change: From Economical Collapses to Deployment
- Engineering v.s. Development: Modeling (Appendix)
- 04 Breaking Change
- Bottlenecks: Blockers of Change
- Throughput of Change: Maker of Bottlenecks
- Independently Changing: Splitting Paired Applications
- Releasing Pressure: Splitting Deployments
- Monolithic Pressure: Throughput meets Design
- Mutually Changing: Applicative Physical Boundaries
- Rolling out Changes: Crossing Time Boundaries
- Persisting: Relationship with Data
- Encapsulating Data: Relationship with a Database
- Frequently Changing: Splitting Applications and Workflows
- Reliably Together and Apart: Cohesive Applicative Splits
- Paying Penalties: Non-Beneficial Applicative Splits
- Macro, Nano, Micro-Services: Does Size Matter?
- Beyond Size: Microservices v.s. Boundaries
- 05 Future Changes
- Theory, Theorem and Practice: A Disclaimer
- Frozen: Zero Throughput
- Off-Broadway: Design Problems for Multiple Actors
- Bundled Tuples: Backend per Actor
- Frequently Fresh: When and How our Data Changes
- Delta Force: Messaging Based Consistency
- Message in a Bottle: Pub/Sub Database Alternative
- Best of Breeds: A Technical Architecture
- Expectations: A Customer-Driven Architecture
- Full Picture: A System Architecture
- Storage of Truth: Persisting Events
- Truthful Insights: Event-Driven Analytics
- Delivery: Reliable Messaging
- Post Office: A Messaging Platform
- Bankrupting Hackers: Threat Model & GDPR
- Epilogue: Limitations and Hindsights