Architecture of Native French Speech as of October 2012

I will explain the architecture of Native French Speech with some details. This is useful if you want to understand how some technologies can work together.

Let's begin with an overview.


Website

The website is what is seen by Internet users when they access the domain name. Their browser receives HTML, JS and CSS produced by the server. Users can also access resources which are linked such as mp3 or PDF files. The website is designed to have fast load times.

There are some nice pieces of JavaScript for a better user experience. Everything should work even if the user disabled JavaScript.

The basis of the User Interface is Twitter Bootstrap.

Server

The server is responsible to deliver the good things to the users' browser. It controls the actions of the user, use the database and storage, and finally prepare the views to be displayed.

The most important thing is user management. Users identities are kept in the database. When a user navigates on the website, pages are displayed with elements depending on the membership of the user.

The server is coded with the Ruby on Rails framework. The languages used are Ruby, JavaScript, CoffeeScript (and CSS).

The nice part is the cache system. This cache allows the server to render the pages faster.

To me there are two extraordinary features with Heroku. First you can scale your application with just a few clicks. When I notice a peak in traffic I just scale my application for a few hours. Second you can rollback your application to a previous deployed version. I used it a couple of times when a new version crashed the application. Heroku is an excellent choice for a start-up.

Database

We use a PostgreSQL database with daily back-ups.

Storage

Resources are stocked on Amazon s3. This is an easy, secure and cheap way to have enough storage. You can store as much files as you want. You pay the traffic generated on Amazon s3 servers.

Future

This decoupled architecture is great when you want to change a part or when you want to add another piece of software. We have big plans for the future. We are building a new server which will be used by Native French Speech server to serve additional features. Stay tuned!