Re: Maximum size limitation of Diego apps' routes

Eric Malm <emalm@...>

Hi, Jason,

This routes payload limit is increased to 128KiB in Diego v1.16.1.


On Mon, May 15, 2017 at 12:57 PM, Jason Huang <jasonxs.huang(a)>

Hi Eric, thanks for the background story. It's even better to completely
eliminate the Routes field size. Please kindly communicate once it's known
when this will happen.

On Mon, May 15, 2017 at 11:35 AM, Eric Malm <emalm(a)> wrote:

Hi, Maggie and Jason,

The 4KiB limit on the Routes payload was introduced defensively in the
earlier days of the Diego project to prevent app developers from putting an
arbitrary amount of data on the DesiredLRP records that Diego uses to track
its representation of a CF app. I don't believe there was any rigorous
validation done at the time that that limit would be sufficient to handle
these apps that have hundreds of routes, and we've received infrequent
feedback that this limit has been a real concern for developers.

Now that Diego uses a SQL datastore instead of etcd, we have fewer
concerns about the aggregate amount of data stored on these records, and
the Diego team will explore increasing the Routes field size limit to a
number that could accommodate this many HTTP routes or even potentially
eliminating the limit entirely, if quotas and validation at the Cloud
Controller level are sufficient to prevent an app developer in an org or a
space with a routes quota from writing an arbitrary amount of data into the
Diego datastore. We would prefer simply to increase or to remove this limit
rather than to make it another operator-configurable setting that could
vary between different CF deployments or on the same CF deployment at
different points in time.

Eric, CF Diego PM

On Mon, May 15, 2017 at 10:39 AM, Siva Balan <mailsiva(a)> wrote:

FWIW, we hit the routes limit on DEA as well. But that limit was much
more than 4K. Fortunately, our service could use the wildcard in the routes
and so we started using that. So I dont believe its specific to Diego.

On Mon, May 15, 2017 at 9:51 AM, Jason Huang <jasonxs.huang(a)>

We wanted to have the ability to keep some customers on version x of an
app and some on version x+1.
While we are looking into a change on our side, can someone share with
us the reason of the limit introduced to Diego on the maximum size of an
application's routes? It was not there with DEA. I like to see that a
change is made in Diego to to make this parameter configurable.



On Sat, May 13, 2017 at 1:34 AM, Tim Lawrence <
tim.lawrence1984(a)> wrote:

Wouldn't it be better to use a single URL and implement the auth and
separation in the app via token or something rather than by host URL? Or if
you need to do that maybe have a micro proxy app per customer which has the
main app registered as a service? It seems a lot of overhead to have that
many routes per app

Sent from my iPhone

On 12 May 2017, at 16:48, Jason Huang <jasonxs.huang(a)> wrote:


Our apps support multi-tenancy and our customers are enterprise
customers. For each subscription, there is unique ur which is mapped to the
same app. Therefore for 500 subscriptions there are 500 routes. This new
limitation introduced in Diego would break our production.

Can someone share the reason for introducing the limitation?



On Fri, May 12, 2017 at 6:25 AM, Daniel Jones <
daniel.jones(a)> wrote:

Hi Maggie,

That's an unusual number of routes for a single app. Could you
explain the use case please, so we can attempt to think of other solutions
to the problem?

Daniel Jones - CTO
+44 (0)79 8000 9153 <+44%207980%20009153>
@DanielJonesEB <>
*EngineerBetter* Ltd <> - UK Cloud
Foundry Specialists

On 12 May 2017 at 03:21, Meng, Xiangyi <Xiangyi.Meng(a)> wrote:


We have one application with over 200 routes and one application
with over 400 routes. And we expect more routes will be created with more
subscriptions coming.

But those applications can’t run in Diego container due to the
maximum size limitation of 4KB as mentioned in

Diego imposes a 4KB limit on the maximum size of an application's
routes. While this doesn't translate to a specific number of routes, as
it would depend on how many characters are in each routes, we are
estimating that gives you space for 40 to 50 medium sized (50 character)
routes. If you have too many routes bound to your application, you'll see
the error *Runner error: desire app failed: 503.* In some cases
you can work around this by using a wildcard route (i.e. *. instead of mapping individual routes. When that is
not possible, the only other option is to run multiple applications mapping
40 to 50 routes to each application.

Apparently wildcard is not an option and we don’t want to split
applications just because we can’t add more routes. Is there any other
solution? And would anyone help to explain why this limitation is
necessary? I don’t remember same issue existed in DEA.




Join { to automatically receive all group messages.