New: How Brevo cut root-cause time to under 5 minutesRead the story →
ewake
Product overview

From hypothesis to a scoped pull request

Hypotheses checked against live production, the blast radius drawn, and the fix written as a scoped pull request.

# p1-alerting9
Today

ewakeApp12:26 AM

Taking the page.

Resolved · fixed by ewake

checkout-api 5xx rate above 2%

The 5xx spike on checkout-api was caused by deploy #4821 lowering db.pool.max from 50 to 5. ewake reverted the setting and the error rate dropped from 6.1% to 0.3% in 4 minutes. Fix opened in PR #4823. Nobody was paged.

SEVERITY · HIGH · CONFIDENCE · HIGH

ACTION · reverted db.pool.max 5 → 50

Datadog12:26 AMtriggering alert

Show more

2 repliesLast reply today at 12:31 AM

ewakeApp2:52 AM

Taking the page.

Needs a human · escalated

payments decline rate 4.2% → 19.6%

Declines are concentrated on one card network and started at 02:51 with no change on our side: no deploy, config or latency shift in the last 2 hours. The pattern points to the payment provider, outside what ewake can fix. Timeline and investigation are ready in inc-2318. Paging @payments-oncall.

SEVERITY · CRITICAL · CONFIDENCE · MEDIUM

RULED OUT · deploys, config, latency

Join inc-2318Open investigation

Datadog2:52 AMtriggering alert

Message #p1-alerting

Knowing the cause is not the same as knowing what to do about it. The gap between the two is where most of an incident actually goes: working out how far the damage reaches, deciding whether the obvious fix is safe, and writing something you are willing to merge at two in the morning.

ewake works that gap. It starts from the named cause and does the checking a careful engineer would do before touching production, then writes the change as a scoped pull request against the boundaries you set.

The pull request is a proposal, not a decision. Auto merge is off by default, and stays off until you turn it on for a service.

What ewake does in an incident

Hypotheses, ruled out

Every candidate cause is checked against live production data (logs, traces, metrics) until only one survives, not asserted from a plausible pattern.

The blast radius, drawn

Which services, which customers, which downstream calls are affected: mapped out before any action is proposed.

The fix arrives as code

A scoped pull request, opened by ewake, with the diff, the reasoning and the tests it ran attached, not a paragraph telling a human what to type.

Only ping a human when one is needed

When human judgment is required or there is customer impact, ewake wakes the on-call, with the investigation, the evidence and the recommended action already attached.

It helps the responders, live, in the channel

Once people are on the incident, anyone can ask ewake what changed, who is affected or what to rule out. It answers from live production, with the evidence.

Your rules decide what merges itself

Auto-merge is scoped per service. Where it's off, the PR waits on the approval you already require: bounded autonomy, not unattended production changes.

How it works toward a fix

  1. 01

    It validates the hypothesis against production

    Before anything is written, the explanation is checked against what your systems are actually doing right now. A cause that only holds in theory does not get a patch.

  2. 02

    It maps the blast radius

    Which services depend on the broken one, which of them are already degraded, and who owns them. This is the part that decides whether a fix is small or whether it needs a human in the room.

  3. 03

    It writes the change inside your boundaries

    Scoped to the services you have allowed, in the style of the surrounding code, as a pull request against your repository in GitHub or GitLab.

  4. 04

    It shows the reasoning with the diff

    The evidence, the alternatives it discarded and its confidence arrive with the change, so reviewing it does not mean reconstructing the investigation first.

Where it stops

Nothing merges on its own

Auto merge is off by default and enabled per service. Until you enable it, every change waits for a human to approve it.

You set what it may touch

Write access is granted per service and revoked the same way. What ewake can act on alone, what needs approval and what it may only suggest are your rules.

Repeats need to be earned

A pattern your team has already resolved once, under rules that allow it, can be handled again automatically. ewake tells you what it did.

Point ewake at your own production

Thirty minutes to connect it, one perimeter, your real alerts. You will know inside a week whether it holds, on your stack, not in a sandbox.