Cloud IDE design (technical)

Cloud IDE Server side

Access to the server side is provided through REST-like API
  • Source files are stored in CouchDB (Git Commits too).
    • Develop git->couchdb storage layer
  • Some project configuration files are stored in CouchDB (information that is not relational, does not require aggregation)
  • User information/ statistics stored in PostgreSQL
  • Source files/ git tarballs precached in Redis
  • Tornado serves as a "proxy" layer between CouchDB/Postgre/Redis and Client.
  • Tornado passes control commands from client to Compilation Unit logging communication and sending it to client.
  • Long-running/ time consuming tasks Tornado offloads to celeryd. (make celery async result passing compatible with Tornado's IOLoop (epoll/select compatible solution)).

TODO

  • For smart/simplistic DB Connection pooling: Async Semaphores (i.e. DeferredSemaphore in Twisted)
  • Git->CouchDB storage Layer
  • Celery working in Tornado IOLoop (non blocking AsyncResult (although, name is async, on KeyValueStorage (i.e. Redis, Memcache) it is blocking or long pooling). Further more, all communications with Message storage/ backend should go through IOLoop without blocking.

Bookmark the permalink. RSS feed for this post.

Leave a Reply

Search

Swedish Greys - a WordPress theme from Nordic Themepark. Converted by LiteThemes.com.
© 2012. Powered by Blogger.