Penumbra / global edge network

Your traffic never sleeps.

Neither does your infrastructure. Penumbra keeps your application running in the daylight, ahead of the continent that is about to wake up.

p50 response
19 ms
214 edge locations, trailing 30 days
  1. Night
  2. Dawn
  3. Sunrise
  4. Day

03:20

01 / the problem

At 07:10 a continent opens its laptop.

Frankfurt goes from 4,100 to 38,000 requests a minute in 26 minutes. The autoscaler notices at minute nine. Every cold start costs 840 ms, the queue reaches 2,400 requests deep, and the people who arrived first are the ones who wait.

Requests per minute across 24 hours in eu-central. Demand sits low overnight, climbs steeply between 06:30 and 08:30 well past the flat provisioned capacity line, holds through the working day, peaks again around 19:00 and falls back after 21:00. Provisioned
Requests per minute, eu-central

02 / the answer

Be where the light is going.

Penumbra puts your code in every region before the demand arrives, serves what it can from cache, and sends the rest to whichever region answers fastest right now, not to whichever one is closest on a map.

  • 5 ms

    Isolates boot in 5 ms, so there is no cold start left to hide behind pre-warming.

  • 94%

    Cache and revalidated fragments answer 94% of requests, which never reach your code.

  • 900 km

    Routing scores live response time, so a congested neighbour loses to a healthy region 900 km further away.

Routing

Four decisions, made before your request arrives.

There is no primary region to fail over from. Every location holds the same deployment and can produce the same answer, and the network keeps score of which one is currently fastest.

  1. 01

    Place

    A deploy ships your bundle to all 214 locations in about 40 seconds. Nothing is a follower, so nothing has to be promoted when a region goes dark.

  2. 02

    Answer from cache

    Static responses, revalidated fragments and signed image variants are served at the edge. Most requests finish before any of your code runs.

  3. 03

    Score, then route

    Every location publishes p50 and p95 for the last 10 seconds. A request goes to the best current score on its continent, which is not always the nearest hop.

  4. 04

    Anticipate

    Capacity warms 40 minutes ahead of local business hours in each region, on the schedule your traffic actually keeps rather than a fixed cron you have to maintain.

Proof

Kalyx stopped guessing when the morning would start.

"We used to warm 60 instances at 06:15, because the alternative was a queue at 07:10. Now nothing gets warmed and p95 at checkout is 84 ms, which is lower than our old best case."

Ines Vogel, platform lead, Kalyx

Kalyx sells event tickets in 14 markets across three continents. Releases open at 10:00 local and sell out in minutes, which used to mean a pre-warming schedule per market and a standing incident channel for the ones that got it wrong.

p95 at checkout
84 ms
was 610 ms
Uptime, 12 months
99.995%
26 minutes of degraded routing, no full outage
Instances pre-warmed
0
was 60, every morning, per market

Pricing

One line item: the requests you actually served.

No seat count, no per-region fee, and nothing owed for capacity that sat warm overnight. The first 5 million requests each month are free.

120M served

5M1B
  • First 5 million requestsincluded
  • Per million after that$0.28
  • Cache hits inside one continentnot billed
  • Egress$0.04 per GB

Estimated monthly

$32.20

Compute and cache are included. Egress is added only for what leaves the network.

Start free tier

Questions

Before you deploy

Do I have to pick regions?

No. A deploy goes to all 214 locations and routing decides per request. Pinning data to a jurisdiction is a separate setting from where code runs.

What happens to my database?

It stays where it is. Penumbra caches reads at the edge and sends writes down one ordered path to your origin, so you keep a single source of truth.

How is this different from a CDN?

A CDN replays something it stored earlier. Penumbra also runs your code, so a response that depends on the request, the session or a live price can still be produced at the edge.

What does the 99.995% figure cover?

Request acceptance and routing across the whole network, sampled by an external prober every 15 seconds. The trailing twelve months and every incident write-up are published.

Free tier

Deploy once, wake up everywhere.

Five million requests a month, all 214 locations, no card. Tell us roughly where your traffic comes from and we will send the region map and a deploy token.

  • 01Point your domain at the network, or keep your own edge in front of it.
  • 02Deploy the same bundle you deploy today. Routing needs no annotations.
  • 03Watch the score board for a week before you move any real traffic.

Opens your mail app. Placeholder inbox: hello@penumbra.example, swap it for the real one before launch.