DEV Community

Cover image for Stop Evaluating Platforms on Features. Evaluate Them on Egress.
James Sanderson
James Sanderson

Posted on

Stop Evaluating Platforms on Features. Evaluate Them on Egress.

Abstract visualisation of an enterprise technology stack

Every engineer who has been handed a platform decision after the contract was signed knows the feeling. The feature matrix was thorough. The demo was polished. And now you are writing a nightly job that scrapes a CSV export because the API only exposes reads.

Feature comparisons are close to useless for predicting how a platform will behave inside a real architecture. Competent vendors all have the features. What differs — enormously, and almost never in the evaluation document — is how well the system participates in a wider stack.

Three questions predict this reliably.

1. Can you get bulk data out, on a schedule, without professional services?

Not "does it have an export button." The button exists. The question is whether a scheduled job can pull the full dataset, incrementally, authenticated by a service credential, without a human in a browser and without a paid engagement.

Test it concretely during evaluation:

GET /api/v2/records?updated_since=2026-09-01T00:00:00Z&page_size=1000
Enter fullscreen mode Exit fullscreen mode

Then check four properties. Does updated_since actually filter on modification rather than creation? Are deletions represented at all, or do records simply vanish from results with no tombstone? Is pagination stable under concurrent writes, or will a page boundary shift and silently drop rows? And is there a rate limit that makes a full sync impossible within a maintenance window?

A system that fails the deletion question in particular will quietly corrupt every downstream warehouse built on it. You will not notice for months.

2. Is the API complete enough to drive the system, or only to read it?

This is the asymmetry that hurts most. Read coverage is a marketing surface and is usually good. Write coverage is where platforms fence off the workflows they want you to perform in their UI.

The specific gaps to probe: can you create and transition records through their full state machine programmatically, including the states reachable only through a wizard in the interface? Can you manage users, roles and permissions through the API, or is that console-only? Can you read and modify the configuration itself — field definitions, workflow rules — so that environment promotion can be automated rather than manually re-clicked in staging and production?

If configuration is UI-only, you do not have environments. You have two systems that resemble each other and drift apart.

3. Is there a real event stream, or will you be polling?

Webhooks are not automatically an event stream. The properties that matter are delivery guarantees, ordering, and replay.

Ask whether delivery is at-least-once with retries and a dead-letter path, or fire-and-forget. Ask whether events carry a monotonic sequence number so a consumer can detect gaps. Ask whether you can replay a window after an outage, or whether anything missed during a deploy is permanently lost.

Without replay, every consumer needs a reconciliation job as a safety net, which means you are polling anyway and have added webhook complexity on top of it.

Why this matters more than it used to

The AI layer has raised the stakes on all three questions, and this is the part worth sitting with.

Retrieval-augmented systems and agentic workflows are only as current as the data reaching them. An intelligence layer built over a nightly CSV is an intelligence layer that confidently answers questions using yesterday's state — and does so persuasively enough that people believe it. Freshness moved from a nice-to-have to a correctness property the moment models started generating answers rather than displaying rows.

Agents make the write-coverage question sharper still. An agent that can read everything and write nothing can only produce recommendations for a human to re-enter by hand, which removes most of the value. The platforms that will survive the next architecture cycle are the ones with symmetric API coverage, and a lot of currently popular ones do not have it.

A practical architectural response, independent of vendor choice: keep the intelligence layer swappable. Own the retrieval, the prompt construction and the agent logic; put model providers behind an interface. Model capability is improving faster than any procurement cycle can track, so hardwiring one provider into your product is committing to a capability snapshot. Teams that did that in 2024 have largely spent this year unwinding it.

A minimal evaluation harness

Rather than relying on vendor answers, spend a day in the trial tenant and script it:

  • Full extract, then an incremental extract, and diff them for drift.
  • Delete a record, then confirm whether the deletion is detectable downstream.
  • Create a record through the API and drive it through every state to completion.
  • Modify a configuration object via API and check whether it survives environment promotion.
  • Register a webhook, kill the consumer for five minutes, restart it, and see what arrived.

Five checks. Roughly a day. They will tell you more about the next three years than the entire feature matrix.

Frequently Asked Questions

Why is data egress a better evaluation criterion than features?

Because competent vendors all have comparable features, while integration behaviour varies enormously and determines whether the platform becomes part of your architecture or an isolated island requiring permanent manual reconciliation.

What makes bulk export genuinely usable?

Incremental filtering on modification time rather than creation time, explicit representation of deletions, pagination that stays stable under concurrent writes, and rate limits that permit a full sync inside a maintenance window. Missing deletion handling silently corrupts downstream warehouses.

What is the most common API gap in enterprise platforms?

Asymmetric coverage — comprehensive read endpoints paired with partial write support, where certain state transitions, permission changes or configuration edits are only possible through the vendor's UI. That asymmetry blocks automated environment promotion and limits what agents can do.

Are webhooks the same as an event stream?

No. An event stream needs delivery guarantees, ordering information such as a monotonic sequence number, and the ability to replay a window after an outage. Fire-and-forget webhooks without replay force every consumer to run a reconciliation job anyway.

How does the AI layer change integration requirements?

Retrieval and agent systems are only as accurate as the freshness of the data behind them, so a nightly batch produces confidently outdated answers. Agents also need write coverage to act rather than merely recommend, which makes API symmetry a functional requirement rather than a convenience.

How do you avoid being locked to one model provider?

Own retrieval, prompting and agent logic in your own codebase and place model providers behind an abstraction so one can be swapped for another without a rewrite.


The full architectural argument, including the four-layer stack and how AI shifted build-versus-buy economics, is here: Digital Transformation Software: A 2026 Buyer's Playbook.

We do this work at TechCirkle — LLM integration and agentic workflow development.

Top comments (0)