Why Atlox?

Modern applications are assembled from layers that describe the same feature in different forms. A customer field may exist in a language type, an ORM model, a migration, an API schema, a form, a cache entry, a search document, an event payload, and an analytics pipeline.

The difficult work is not merely writing each artifact. It is preserving their correspondence as the application changes.

The representation problem

Conventional tools treat source, schema, service topology, and deployment configuration as independent snapshots. A release replaces one collection of snapshots with another. Renames look like delete-and-add operations, old clients require manual adapters, and deployment intent is reconstructed from diffs and scripts.

Atlox keeps one semantic history. It records whether a change preserves identity, refines a representation, decomposes one meaning, introduces another, or retires existing behavior.

What developers should own

Developers still decide:

  • what concepts and values mean;
  • which transitions are allowed;
  • what information may be lost;
  • who may read or change state;
  • what external effects mean;
  • which latency, durability, privacy, and availability trade-offs matter.

The runtime should own the mechanical consequences: storage layout, indexes, incremental maintenance, synchronization, compatibility, rollout, recovery, and cleanup.

The test

Atlox succeeds when a substantial feature can be explained without discussing tables, queues, containers, or migration scripts unless those mechanisms are themselves part of the product.

It is not an abstraction over complexity. It is an attempt to keep essential domain complexity in the program and move representational complexity into a compiler and runtime that can verify and explain its work.