Three decades of methodology added tiers, then frameworks, then frameworks on top of frameworks — each layer added to manage the complexity of the one beneath it. Aurora Composable removes the layers instead of managing them.
They are deliberately separable. Adopt the first alone and you get a smaller, more durable codebase. Adopt both and you can change what the product does without changing the product.
Every part of the system is either something you wrote or something the platform vendor already guarantees — and nothing in between.
Rapid configuration of what the product does, for whom, and under what limits — expressed entirely in data, changed in production, without a release.
A framework is a set of decisions someone else made, delivered as code you now maintain.
Anything that does not belong to one of these three does not belong in the system.
Written in the platform's own language and UI toolkit, with no dependency tree. It holds no business rules of its own, so it rarely needs to change.
Small single-purpose functions over a key-value store, reached through signed endpoints. No application server, no ORM, no framework runtime.
Who may do what, what runs when, what gets recorded, how the product behaves. Data, read at runtime by the client and the backbone alike.
The app and the cloud platform are the two fixed points — you own one and rent the other. Everything that decides how the product actually behaves lives in the layer between them, and that layer is data.
Tiers, limits, entitlements and feature switches are configuration. They move in minutes, for every installed client at once, with no store review in the path.
Behaviour that would otherwise become branches becomes rows instead. The code that reads a key collection is written once and then stops growing.
There is no dependency tree to keep current, no framework major version to migrate to, and no upstream project whose abandonment becomes your emergency.
Two clients on two platforms read the same key collections and behave identically, because the behaviour was never written into either of them.
Most systems hide their decisions inside code.
A composable system publishes them as data.