The latest updates about Superdesk


The Architecture of Superdesk

Photo by Flickr user Elvin (CC BY-NC 2.0)
Photo by Flickr user Elvin (CC BY-NC 2.0)

Our Superdesk open source software is built following the REST architectural style, the client is an Angular driven application and the backend is being built using Python 3 and the Flask-based Eve framework.

This post will do a deep dive into the backend side of the current architecture, the client side will be tackled by an upcoming post.

Tech stack

  • Elasticsearch - secondary data storage, enhanced search capabilities
  • Python 3 - provides all the goodies to make developers happy
  • Eve - easy way to define the REST-like API
  • Flask - besides being the backbone for Eve, we use it extensively for creating custom commands
  • MongoDB - main data storage
  • Celery - task distribution, workhorse for background data processing
  • Redis - mainly used for passing data to Celery workers and for task synchronization
  • Autobahn - WebSocket communication handling, main notification mechanism
  • Honcho - manage the running applications

Optional dependencies

  • Docker - custom built images for server and client, easy run&deploy scenarios
  • LogStash - centralised logging

The full list of development dependencies can be found here.




What's visible at a quick glance is that the current backend infrastructure is composed of three running apps:

  • Celery application sharing a lot of the internal infrastructure of the Eve application
  • Flask/Eve web application running on top of [Gunicorn]
  • WebSocket server to handle client notifications

On the storage side of things, we have:

  • Mongo as the main storage engine
  • Elastic as the main search engine
  • Redis for sending data to and from Celery workers

Sign up for free to our monthly newsletter to receive Software updates and news about Superdesk

Demo request

Before you go

See Superdesk in action with a no-obligation demo for your organisation.

Schedule a demo