Get the cattle out! Let's build a large scale Sling rendering/processing farm

So far Apache Sling has been mostly about "pets", systems that you need to dedicate to a specific developer team, or a specific set of friendly teams.

In this talk I will present the challenges related to running Sling instances more as "cattle", to build a large scale rendering and request processing farm meant to be used by many unrelated developers concurrently.

Sharing Sling instances between mutliple projects and developers requires introducing some restrictions on the request processing and rendering code, in order to avoid security and performance issues. Making optimal use of resources, like CPU and memory in particular, is a challenge if we choose to run multiple JVMs for isolation.

The big question is whether those restrictions result in a fully different beast, or if our Sling Request Processing Farm is still Sling, just with a few sensible limitations.

The options explored present various ways of providing the required code isolation and service level guarantees, to help us figure out how to best move Sling in that direction. Discussing this should also help developers understand how to structure their code to make it more future-proof and scalable.