Edge Routing & Split Testing

Coming Soon

We are excited to announce that Edgemesh® Server v2 will introduce the Edge Routing feature, offering enhanced capabilities for traffic routing to multiple backends on your domain. This feature allows you to define sets of criteria that determine how incoming traffic is directed, enabling various scenarios such as A/B testing, managing multiple content management systems, creating customized landing pages, and more.

With Edge Routing, you'll have the flexibility to seamlessly distribute incoming requests to different backend systems based on specific conditions and rules. This empowers you to explore new possibilities for optimizing your website's performance, user experience, and content management.

Please note that the documentation for the Edge Routing feature is currently under development and subject to change as we approach the release of Edgemesh® Server v2. We are continuously refining and enhancing this feature to ensure its effectiveness and ease of use.

Stay tuned for more updates and information on the Edge Routing feature as we progress towards its official release. We look forward to empowering you with this powerful capability to further enhance your website's functionality and performance.

Routing Schema Proposal


REQUIRED
The name of this route. This is used solely for identification purposes.

type
string
REQUIRED
The type of route.
  • route: A single backend destination.
  • split: Multiple backend destinations.

path
string
REQUIRED
Glob pattern to match request URLs.

paths
string[]
REQUIRED
List of glob pattern to match request URLs.

backend
string
The backend hostname to route to when type is set to route.

cache
boolean
OPTIONAL
Wether or not this route is cache eligible.

bypass
boolean
OPTIONAL
Wether or not this route should bypass Edgemesh® optimizations.

device
string
OPTIONAL
Devices this rule applies to.

devices
string[]
OPTIONAL
List of devices this rule applies to.

country
string
OPTIONAL
Country this rule applies to.

countries
string[]
OPTIONAL
List of countries this rule applies to.

continent
string
OPTIONAL
Continent this rule applies to.

continents
string[]
OPTIONAL
List of continents this rule applies to.

audience
string
The audience for a split route.
  • weighted: Route traffic to group with a weighted distribution.
  • device: Route traffic to a group by device type.
  • region: Route traffic to a group by continent and/or country.

duration
number
Duration of a split route in seconds.

groups
IGroup[]
Backend groups for a split route.

The backend hostname to route to when this group is selected.

OPTIONAL
Weight (percent chance) this group is selected. A number between 0 and 1.

OPTIONAL
Devices this group applies to.

OPTIONAL
List of devices this group applies to.

OPTIONAL
Country this group applies to.

OPTIONAL
List of countries this group applies to.

OPTIONAL
Continent this group applies to.

OPTIONAL
List of continents this group applies to.

OPTIONAL
Wether or not this group is cache eligible.

OPTIONAL
Wether or not this group should bypass Edgemesh® optimizations.

Examples

Route Path to New Backend
{
name: 'Route to Foo',
path: '/foo/bar',
type: 'route',
backend: 'foo.com'
}
Route Path to New Backend on Mobile
{
name: 'Mobile Route to Foo',
path: '/foo/bar',
type: 'route',
devices: ['mobile', 'tablet'],
backend: 'foo.com'
}
Route Path to New Backend in EU
{
name: 'EU Route to Foo',
path: '/foo/bar',
type: 'route',
continent: 'EU',
backend: 'foo.com'
}
Landing page
{
name: 'Landing Page',
paths: [
'/blog/**',
'/blog-categories/**'
],
type: 'route',
backend: 'blog.foo.com'
}
Cache Bypass
{
name: 'Cache Bypass',
path: '/foo/*',
type: 'route',
cache: false
}
Full Bypass
{
name: 'Full Bypass',
path: '/foo/*',
type: 'route',
bypass: true
}
Weighted A/B Test
{
name: 'Weighted A/B Test',
path: '*',
type: 'split',
duration: 60 * 60 * 24 * 7,
audience: 'weighted',
groups: [{
backend: 'foo.com',
weight: 0.5
}, {
backend: 'variant.foo.com',
weight: 0.5
}]
}
Region Based A/B Test
{
name: 'Region Based A/B Test',
path: '/*',
type: 'split',
duration: 60 * 60 * 24 * 7,
audience: 'region',
groups: [{
backend: 'foo.com',
country: 'US'
}, {
backend: 'variant.foo.com',
continent: 'EU'
}]
}
Device Based A/B Product Test
{
name: 'Device Split Product',
path: '/products/*',
type: 'split',
audience: 'device',
duration: 60 * 60 * 24 * 7,
groups: [{
backend: 'foo.com',
device: 'desktop'
}, {
backend: 'mobile.foo.com',
devices: ['mobile', 'tablet']
}]
}

Thank you for your interest in the Edge Routing feature of Edgemesh® Server v2! We understand the importance of staying updated on the latest developments and being notified when this feature becomes generally available.

To ensure you receive timely updates and notifications, we recommend subscribing to our blog. Our blog is a valuable resource where we share news, announcements, and detailed information about new features, including the release of Edge Routing. By subscribing, you'll be among the first to know when the feature is live and ready to be utilized.

Additionally, joining our Discord community is another excellent way to stay connected and engaged with the Edgemesh® community. Our Discord channel provides a platform for discussions, Q&A sessions, and direct communication with our team and other users. It's a great place to exchange ideas, ask questions, and receive updates on new feature releases.

By leveraging both our blog and Discord community, you'll have multiple channels to stay informed about the availability of the Edge Routing feature. We appreciate your interest and look forward to bringing you this exciting enhancement to Edgemesh® Server v2.

Made withby Edgemesh Corporation