Envello
Engineering

When to stop calling the SES API directly and use a control plane instead

Envello Team·2026-07-16·6 min read

Envello sends through AWS SES underneath, the same infrastructure you'd call directly. So the honest question isn't "is SES good enough", it's "what do you get from a layer on top of it, and is that worth paying for instead of building it yourself." Sometimes the answer is genuinely no.

When calling SES directly is the right call

  • You're at low volume with a simple use case (a handful of transactional email types) and don't mind owning bounce/complaint handling yourself
  • You already have infrastructure investment in AWS tooling (CloudWatch, SNS, Lambda) and want everything in one place
  • You need something SES doesn't gate behind a control plane, direct access to configuration sets or features a wrapper hasn't caught up to yet

What a control plane actually adds

Envello's own architecture makes a specific bet here: SES handles the actual sending infrastructure and deliverability risk, and everything that creates day-to-day value sits on top as our responsibility, not yours. Concretely: parsed, searchable logs with 90 days of retention by default (SES bounce/complaint notifications alone are raw SNS payloads, not a searchable log UI), signed webhooks with retry logic, suppression list management, and a dashboard that doesn't require you to build one.

The honest cost comparison: calling SES directly is cheaper on paper (you pay AWS's per-email rate and nothing else), until you count the engineering time spent building and maintaining bounce processing, a log viewer, webhook retry logic, and suppression handling. For most teams past a handful of email types, that build-and-maintain cost exceeds a managed layer's price within the first few months.

The actual decision point

If you're already parsing SNS notifications into your own database, already built retry logic for webhook-style alerts, and already have a working suppression list, you've effectively built your own control plane, and switching probably isn't worth the migration cost. If you're not, and you're spending engineering time maintaining that instead of shipping product features, that's the point where a layer on top starts paying for itself.

Envello

EU-hosted transactional email, done right by default.