.. _components: Aesel Components ================ :ref:`Go Home ` Aesel is not actually a single program, but a number of programs all running independently and communicating with each other. This allows for built-in redundancy to achieve both high-availability, and scalablity to respond quickly to large changes in volume. Below you can find the components that comprise the Aesel Architecture: Adrestia -------- Adrestia acts as the HTTP Gateway for external clients into Aesel. It abstracts away the various clusters of event-based components into a single transactional plane for both users and other services to utilize. * `Home Page `__ * `Documentation `__ Kelona ------ Kelona stores graphics assets, and tracks various versions of those assets over time. Effectively, it acts as a Version Control System for large-scale, binary files for large-scale userbases. * `Home Page `__ * `Documentation `__ AeselProjects ------------- AeselProjects stores project management information for collaborative 3-D projects (ie. Animation, Product Design, etc). This provides organizational capabilities and a rich User Experience on large projects. * `Home Page `__ * `Documentation `__ CLyman ------ CLyman is a service working in the domain of Renderable Objects. It exposes CRUD operations, and is the starting point of the Outbound Streaming API's. * `Home Page `__ * `Documentation `__ Crazy Ivan ---------- Crazy Ivan is a service working in the domain of Scenes. It exposes CRUD operations for scenes, as well as registration operations. It also acts as the sender for the Outbound Streaming API's. * `Home Page `__ * `Documentation `__ Mongo ----- Mongo serves as the primary data store behind CLyman, storing all Object information. Mongo GridFS also serves as the default data store for Assets. * `Home Page `__ Neo4j ----- Neo4j serves as the primary data store behind Crazy Ivan, storing all Scene information. * `Home Page `__ Consul ------ Consul serves as both a service registry and a distributed configuration store. * `Home Page `__