# Mention's CTO journey to 400,000 users

DevFeed: [Mention's CTO journey to 400,000 users](<https://devfeed.tech/articles/mention-s-cto-journey-to-400-000-users-34701.md>)

Original publisher: [Read original article](<https://medium.com/unexpected-token/mention-s-cto-journey-to-400-000-users-f22dc242eec?source=rss----2d2624499d2---4>)

Author: Hexa

Published: 2015-10-22T12:17:15Z

Content type: article

Language: en

Sources: [eFounders](<https://devfeed.tech/sources/efounders.md>)

Topics: [App](<https://devfeed.tech/topics/app.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [Crawler](<https://devfeed.tech/topics/crawler.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [race-condition](<https://devfeed.tech/topics/race-condition.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [API](<https://devfeed.tech/topics/api.md>), [Kafka](<https://devfeed.tech/topics/kafka.md>), [Redis](<https://devfeed.tech/topics/redis.md>), [Percona](<https://devfeed.tech/topics/percona.md>), [backups](<https://devfeed.tech/topics/backups.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [backups](<https://devfeed.tech/tags/backups.md>), [developer](<https://devfeed.tech/tags/developer.md>), [development](<https://devfeed.tech/tags/development.md>), [dns](<https://devfeed.tech/tags/dns.md>), [go](<https://devfeed.tech/tags/go.md>), [kafka](<https://devfeed.tech/tags/kafka.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [percona](<https://devfeed.tech/tags/percona.md>), [programming](<https://devfeed.tech/tags/programming.md>), [race-condition](<https://devfeed.tech/tags/race-condition.md>), [redis](<https://devfeed.tech/tags/redis.md>), [startup](<https://devfeed.tech/tags/startup.md>), [tech](<https://devfeed.tech/tags/tech.md>), [users](<https://devfeed.tech/tags/users.md>)

## AI overview

Mention's co-founder and CTO describes the technical challenges involved in growing the real-time monitoring application to 400,000 users. The article covers high-concurrency web crawling, a libc DNS resolver race condition, and the use of Go as a workaround. It also explains Mention's storage architecture using Percona MySQL, Redis for caching, Kafka for messaging, and incremental backups.

## Source excerpt

Mention is a real-time monitoring application used to track and analyze trends and e-reputation in a very complete and intuitive way. Co-founded in 2010, it now counts 400,000 users across the world. This impressive growth rate not only implies great marketing talent but also impressive technical achievements. Arnaud le Blanc, Mention's co-founder and CTO, tells us about how he got Mention there. You gotta love technical challenges "When we developed Mention, our main competitor was Google Alerts, which feels a little like being David versus Goliath at first. But then it became one of the reasons I like my job: it is very challenging. Getting to this point of a product development involves a true entrepreneurial mindset. Before being Mention's CTO, I was a developer and then the lead developer working on the media monitoring feature at Pressking. eFounders offered me to become Mention's co-founder. I might not have thought of myself as an entrepreneur before, although today, I really feel like Mention is my product: I've built it together with my co-founders. Building an application like Mention is full of technical challenges. We handle a large amount of data, crawl thousands of web page per second, built an open API for our own apps, and use lots of third-party APIs." FOCUS: a challenge overcome when developing Mention's web crawler Since Mention crawls a large amount of web pages in parallel, there is a point when the crawler reaches a high concurrency level and stresses the OS: that is when we got to the limit of our system. In our case, these limits entailed the appearance of a race condition in the libc's DNS resolver. libc was sending over DNS queries on random unrelated file descriptors, which was leading to weird behaviors. The bug was reported and fixed a few months later, but in the meantime, we had to use the plain-Go DNS resolve, which happened to work really well. "At Mention, several millions of Mentions are inserted in user feeds per day (see infogra