Introduction
ESN Planet is a distributed MVC framework built in Python with a major emphasis on real-time, social features and scaling.
ESN Planet is built around 4 subsystems: Surface, Impact, Core and Orbit. All an integrated part of the ESN Planet framework -- and they fit seamlessly together. Read more about the subsystems below.
Surface
Real-time web framework. Surface is a lightweight framework for developing real-time web sites and applications. It contains an object-based template engine capable of both server and client-side rendering.
This is revolutionary because the web is not designed to support real-time and push technology. Without using Surface, JavaScript must be used for all real-time experiences. Developers must duplicate their HTML code in the JavaScript as well as in their server-side code.
Both approaches are very time consuming and complex. Development of real-time applications is at least 4 to 5 times more costly than traditional applications and very few developers master it at a productive level.
Surface also helps the developer to implement best practise web optimizations by automatically minifying and merging JavaScripts and stylesheets. Static resources, like images and flash files, are out-of-the-box configured to be offloaded to dedicated asset server or CDN.
These optimizations ease the load of the Surface servers and makes pages render faster. Another feature in Surface is localization. Every component (building block) in Surface has its own set of translation files. These translations are of course fully namespaced, completely eliminating translation collisions or errors.
Both approaches are very time consuming and complex. Development of real-time applications is at least 4 to 5 times more costly than traditional applications and very few developers master it at a productive level.
Surface also helps the developer to implement best practise web optimizations by automatically minifying and merging JavaScripts and stylesheets. Static resources, like images and flash files, are out-of-the-box configured to be offloaded to dedicated asset server or CDN.
These optimizations ease the load of the Surface servers and makes pages render faster. Another feature in Surface is localization. Every component (building block) in Surface has its own set of translation files. These translations are of course fully namespaced, completely eliminating translation collisions or errors.
Hybrid template language
Powerful template language that renders both server-side and client-side.
Industry standard MVC
Comes with advanced request routing and controllers.
Full localization and Unicode support
Designed from the ground up to be multilingual.
Impact
Agile application server. While Surface is responsible for serving the front-end, Impact handles all back-end parts of an ESN Planet Application.
As any good application server, its services are stateless, allowing almost unlimited scalability due to this share-nothing approach. Any state of the services are strictly kept in a database or a high-performing memory server (such as memcached).
One of the fundamental aspects of scalability is that state always, without exceptions is stored in partitions. This given, Impact guides the developer firmly into these practises, ironing out any scalability issues early on.
All services are served using the Thrift protocol enabling not only high-performance but easy integration with any popular language. Worth mentioning is that Impact is not based on the conventional thread-model normally seen in application servers.
We believe in event-driven design that allows massive and non-blocking concurrency. This truly is one of the pillars of Impact.
One of the fundamental aspects of scalability is that state always, without exceptions is stored in partitions. This given, Impact guides the developer firmly into these practises, ironing out any scalability issues early on.
All services are served using the Thrift protocol enabling not only high-performance but easy integration with any popular language. Worth mentioning is that Impact is not based on the conventional thread-model normally seen in application servers.
We believe in event-driven design that allows massive and non-blocking concurrency. This truly is one of the pillars of Impact.
Service-oriented
Utilises the concept of services as logical definitions of responsibility.
Partitionable
Supports both vertical and horizontal partitioning yielding ultra-high scalability.
Lightweight
Based on Python allows unmatched agility.
Core
Reusable social modules founded on best practices. Core is a library that gives you generic best practise social functionality. The library is designed to allow you to extend and tailor your social services exactly as you want them.
By using Core, you can avoid reinventing the wheel and get a working application running quickly. Core separates functionality into items and tools. Items are ready to use models such as blog posts and feed items, while tools are functionality that can be applied to items, such as comments and ratings.
The rating tool can for example be used both for forum posts as well as user profiles, or tagging can be used both for news content, blogs and forums.
The separation of Items and Tools also makes it as easy to use the Core tools to improve smartness and relevance to your present web system.
You can for example extend the functionality of your present user directory to get advanced friend feed and notifications, or to apply tagging to your present forums and blogs.
The rating tool can for example be used both for forum posts as well as user profiles, or tagging can be used both for news content, blogs and forums.
The separation of Items and Tools also makes it as easy to use the Core tools to improve smartness and relevance to your present web system.
You can for example extend the functionality of your present user directory to get advanced friend feed and notifications, or to apply tagging to your present forums and blogs.
Rich library of reusable social items
Core ships with ready-to-use items that include forums, blogs and friend feeds.
Easy to extend and adapt
Tailored to suit your wildest requirements.
Reusable tools
Built-in tools such as rating and comments that can be applied to any item.
Orbit
Provides real-time communication with the web browser. At the heart of the real-time experience in ESN Planet lies Orbit. Relaying messages sent from the server to the user's browser, it makes the web page content come alive.
Creating a real-time web site is usually challenging, even under good circumstances. Combine this with a world where your user base can multiply fast over night and you can face critical problems.
Luckily, Orbit is built from the ground up to be tightly integrated with all other ESN Planet subsystems. Through this, incredible speed-ups in development can be achieved.
Orbit is a custom written web server, designed for massive concurrency. Based on the Comet paradigm, it delivers its messages using HTTP and JSON. Using these messages and events, Impact and Surface can trigger updates in the browser.
Orbit is designed from the ground up to be a scalable Comet server. With its clustering abilities, it handles tens of thousands of simultaneous users. In addition, Orbit is completely standards based using native features offered by modern web browsers today.
Luckily, Orbit is built from the ground up to be tightly integrated with all other ESN Planet subsystems. Through this, incredible speed-ups in development can be achieved.
Orbit is a custom written web server, designed for massive concurrency. Based on the Comet paradigm, it delivers its messages using HTTP and JSON. Using these messages and events, Impact and Surface can trigger updates in the browser.
Orbit is designed from the ground up to be a scalable Comet server. With its clustering abilities, it handles tens of thousands of simultaneous users. In addition, Orbit is completely standards based using native features offered by modern web browsers today.
Scalable
Battle-tested with tens of thousands of users.
Cross-browser support
Compatible with all major browsers on the market.
Standards based
Built on established technologies such as HTTP and JSON.





