Engineering note

Data-based programming – letting data shape behavior

A practical look at designing systems where data drives behavior.

Data based programming hero

Why we moved to data-based programming

As the system grew, conditional logic started to spread across the codebase. Each new feature meant another if, another switch case, and another place to forget an update.

Data-based programming helped us flip that model: instead of hard-coding behavior, we described it using data structures that the runtime could interpret.

What worked well

  • Configuration replaced branching logic.
  • New behaviors could be added without touching core code.
  • Data structures were easier to test and reason about.
  • Non-engineers could review and tweak rules safely.

What we are improving next

  • Schema validation for all behavior definitions.
  • Better tooling to visualize data-driven flows.
  • Performance profiling on large datasets.
  • Clearer versioning of behavior configs.

Data over logic

The key shift was treating data as the source of truth. Instead of asking “what should the code do here?” we now ask “what does the data say should happen?”.

This approach reduced complexity, improved flexibility, and made the system easier to evolve over time.