Under the hood
Services
We use Elastic Search for its textual and spatial search functions on any type of document. Its distributed architecture allows rapid increases of the load, while preserving very good response times. Elastic Search is used in Enterprise and Geocoder APIs.
MongoDB is a no SQL database for storing JSON documents. It presents an interesting balance between simplicity, performance and power. We use it for the storage of some documents in the database, such as our user accounts, for example.
Redis is a high performance in-memory data structure server that scales easily. There are many uses for : cache, processing queue, data shared between services.
We use theTICK stack to monitor our platform. Telegraf emits various metrics stored in InfluxDB. Kapacitor allows to raise alerts on events and Chronograf allows to view the whole monitoring system.
Frameworks
We build our APIs with NodeJS and the Express framework. We particularly like their asynchronous nature to link, easily and efficiently, the various APIs of the services. Just like Python, Javascript is a high level language, which allows to write functionalities with few lines of code, and therefore lowering the risk of bugs and maintenance cost.
VueJS is a library used to create rich and responsive applications. We liked its simplicity and the speed with which we got hold of it. VueJS combines the best of both worlds between AngularJS and ReactJS. In addition to the components router and store, we use the excellent library Vuetify for the style of our sites as well as the Nuxt framework.
Docker allows to encapsulate an application and its dependencies in an isolated container. It is an essential building block in our deployment process. Docker allows to automate our staging and production processes and to have an efficient continuous integration.
Tools
Gitlab is our software forge and our project management tool. We manage the progress of our projects with tickets. Gitlab allows to pilot the continuous deployment and to host the artefacts that we produce. In addition to making a tool that we really appreciate, Gitlab Inc. is a source of inspiration for our working methods.
GitHub is where you can find our open source projects. GitHub allows to contribute to the open source community by forking projects and submitting pull requests.