Edgio
Edgio

Performance

Edgio Performance provides:

  • Full control over how your content will be accelerated.
  • Performance insights that you can use to fine-tune your configuration.
  • The ability to compute your JavaScript functions within our service.
  • The ability to control traffic distribution for the purpose of A/B testing and iterative site migrations.

Architecture

architecture

Edge (L1 Edge Cache)

Edgio features a global network of over 80 global points of presence, ensuring that each user experiences minimal latency when connecting to your site.

Global (L2 Shield Cache)

Edgio employs a second caching layer that maximizes global cache hit rates and reduces traffic on your servers by coalescing requests. If more than one request for a given URL simultaneously arrives at our second caching layer, all requests, except for one, are held up while the result is retrieved from a JS worker. All requests are fulfilled with the same response. This reduces the concurrent load on your APIs and allows you to run with lower costs.

Server-Side Rendering

Edgio provides server-side rendering (SSR) through serverless workers in multiple regions.

Speed

Edgio makes it possible to deliver sub-second page load-times and instantaneous client-side page transitions through the use of prefetching and caching. It empowers developers to optimize performance by leveraging powerful caching and edge logic capabilities right from their application code using an EdgeJS JavaScript API. Rather than manually configuring your CDN through a web portal, Edgio allows you to put your edge logic in code, so that it’s source-controlled, reviewed, and tested using the same software development lifecycle as the rest of your vital application code. You can even A/B test edge logic in production!

JavaScript
1// Example Edgio routes file for a Next.js app
2
3const { Router } = require('@edgio/core/router')
4const { nextRoutes } = require('@edgio/next')
5
6export default nextJSApp => {
7 return new Router()
8 .get('/p/:productId', ({ cache }) => {
9 cache({
10 edge: {
11 // cache the SSR response at the edge
12 maxAgeSeconds: 60 * 60, // one hour
13 staleWhileRevalidateSeconds: 60 * 60 * 24, // one day
14 },
15 })
16 })
17 .use(nextRoutes) // serve pages using Next.js's built-in routing
18 .fallback(({ proxy }) => proxy('legacy')) // serve unmatched URLs from the legacy implementation of the site so we can gradually role out the new PWA page by page.
19}

Scalability

Edgio automatically scales to handle increased traffic. No configuration is required. You simply write your application code and Edgio provides compute resources to handle any level of traffic.

Availability

Edgio provides high availability for all of its components. You can choose a particular region of the world in which your API servers are located. Edgio will provision two data centers closest to it, connecting them with automatic DNS failover. High availability is also provided within the data centers themselves, with all individual processes being (at least) duplicated and sharing the traffic load among themselves. This architecture minimizes the chances of traffic loss.

Edgio is available in the following global regions:

  • Americas: Eastern US and Western US
  • Europe: Ireland, UK, Western Europe, Northern Europe, Central Europe
  • Asia: Japan
  • Oceania: Australia

Enterprise customers may choose the region where their workloads will run. If you have particular needs, other regions may be configured specifically for you.

If you are using our free tier, then your workloads will run in the Eastern US region.

Productivity

Edgio empowers your team to build apps faster and be more transparent. Every time a developer pushes commits to source control, that version of the site is automatically given a permanent preview URL so that QA testers, code reviewers, and other stakeholders can try out the changes immediately. Find a bug in your app? Edgio makes it easy to go back in time and try out older versions of the app to find the point in when the bug was introduced. This is especially useful for meeting performance targets as it makes it easy to compare speed measurements between multiple iterations of your app.

React, Vue, and Angular

Edgio supports the most widely used technologies for building progressive web applications. The Edgio CLI automatically detects whether you’re using React (Next.js), Vue (Nuxt.js), or Angular and configures your app accordingly so you can publish your app to the cloud in seconds.

Limitations

Legend

  • Kb stands for kilobytes and means 1,024 bytes (2^10 bytes)
  • Mb stands for megabytes and means 1,024 kilobytes (2^20 bytes)
  • Gb stands for gigabytes and means 1,024 megabytes (2^30 bytes)

Request and Response Limits

TypeLimitDescription
Response time from origin server60 secondsThe maximum number of seconds that Edgio will wait for a response from an origin server (e.g., your web server). The response for a request that exceeds this limit is a 531 Project Upstream Connection Error.

Requests that exceed this limit should return a 536 Project HTTP Response Timeout. We will update our service to return this status code instead of a 531 Project Upstream Connection Error response in the near future.
Response body size from static2GbThe maximum size of a response body of Edgio static assets.
Response body size from custom origin2GbThe maximum size of a response body from a custom origin.
Response body size from Edgio serverless6MbThe maximum size of a response body from Edgio serverless.
Path and query string size8KbThe maximum bytes (not characters) that Edgio will accept in path and query string.
Cookie size32KbThe maximum bytes that Edgio will accept in request or response cookies.
HTTP header size64KbThe maximum bytes that Edgio will accept in request or response HTTP headers.
HTTP header count70The maximum number of developer-controlled headers Edgio will accept in HTTP request or response. Exceeding this will result in 542 status code.
Scheduling timeout60 secondsThe number of seconds Edgio will try to schedule a request processing before timing out. Exceeding this will result in 541 status code.
Worker timeout20 secondsThe number of seconds Edgio will wait for project code to process the request before timing out. Exceeding this will result in 539 status code.
Prerender concurrency200
Total number of prerendered requests25,000 per deployment
Maximum number of nested requests3“Nested” means an Edgio site is the upstream of itself or of another Edgio site. Exceeding this will result in 538 status code.

Access Logs

ValueLimitDescription
SizeUnlimitedAll access logs will always be logged.
Time2 hoursThe minimum time that Edgio guarantees that access logs will be available for reading.

Prohibited Headers

The following is a list of headers that cannot be modified by your project code. These values are immutable and can only be set by the Edgio platform.

  • x-0-platform
  • x-0-version
  • x-0-t
  • x-0-components
  • x-0-status
  • host
  • x-request-id
  • content-length
  • via