Smart Placement - Improve the performance of applications

The location of your resources should be a network decision, not a human decision. Smart Placement automatically moves your Worker or Pages Function to an optimal location that minimizes the latency to back-end services.

With Smart Placement, you can enhance the performance of your applications. This feature automatically repositions your Worker or Pages Function to an ideal location that minimizes latency to back-end services.

Screenshot 2023-11-01 at 12.57.20 PM
Screenshot 2023-10-21 at 3.59.33 PM

Try It

Read More

Activate Now
Get started with Workers & Pages

Play More

audioflare - Transcribe, Analyze, Translate audio files
Might I Get Pwned - A privacy preserving credential checking service
Try it Now -
Discourse Semantic Related Topics
E-commerce site using Cloudflare Workers, Remix, Turso, & Drizzle
Doom Multiplayer on Cloudflare Workers
Cloud Gallery, a simple filtered gallery using fragments
Durable World
Hyperdrive - Turns your existing regional databases into globally distributed ones
Smart Placement - Improve the performance of applications
GitHub Repositories Search API
Cloudflare Workers Playground
Cloudflare Workers Vector Demo
Cloudflare Edge Chat Demo
Hello ChatGPT!
Remix on Cloudflare
SuperSpeare - Shakespeare Quote Search


@cloonan we’ve been experimenting with adopting Workers for parts of our org. Naturally, like you say, Worker placement has a huge impact on performance of real-world applications that issue sub-requests to other APIs/backends, so Smart Placement is an exciting and critical idea for Workers.

The location of your resources should be a network decision, not a human decision.

This is partially true. Yes, it is a network decision on how to achieve the lowest latency to route between two networks, because it depends on network conditions. For example, when reaching out to a backend in us-west1, in practice it may not always be optimal to co-locate a Worker in us-west1 due to transient route conditions or outages.

However, I would maintain that providing a “hint” about which routes are important for application performance absolutely can require a human decision.

Consider this:

  • The backend resources can be geographically located but behind a global CDN. Smart Placement cannot determine the geographic location to optimise for latency. Think Google APIs such as Firestore database and many others which are actually geographically located.
  • Different backends may be in different regions, but some are important for application performance and some are not. For example, a Worker may reach out to europe-west1 for the statistical majority of requests, but those requests may be a background operation for the user, whereas us-west1 may be most important for user-facing latency. Smart Placement cannot know which route is more important for the application, and varying usage statistics of the Worker would impact the “smart” placement and application performance.

In these cases, Smart Placement as it stands is “too smart for it’s own good”. It cannot cover all cases and doesn’t always know what is best.

To make this viable in real-world applications, we would love see a feature allowing us to configure a “placement hint” manually, such that we can have deterministic application performance, while still allowing the network to decide the best placement to minimise route latency to that region at any time based on network conditions.

Keep up the good work! :raised_hands: