Since no one mentioned yet, there's also the binary protocols used by Telegram. A backend can be written in many different languages, since their MT protocol is agnostic. Scala would fit well with it on backend, and clients can be written in Java, JS, C#... Telegram has a nice speed of transport and the TL language is not that hard to learn or implement.