SoundCloud Backstage Blog
backstage.soundcloud.com · Company blog · on HN since 2011
SoundCloud's engineering team writes about its architecture, Go, Backbone.js, and data storage choices.
What HN saysHN links it for SoundCloud's use of Go, its Backbone.js site, and its account of failing with MongoDB for statistics before choosing Cassandra.
24HN people shared it
9linked it in comments
17stories submitted
480story points
13 years agolast shared
2011people per year2026
Most-shared posts
- 1Go at SoundCloud7 people · 190 points · first shared 2012 · 109 comments on HN
- 2How SoundCloud built its new single-page main website using Backbone.js3 people · 198 points · first shared 2012 · 65 comments on HN
- 3Evolution of SoundCloud’s Architecture3 people · 21 points · first shared 2012 · discussion on HN
- 4MySQL for Statistics2 people · 6 points · first shared 2011 · discussion on HN
- 5Web Scale Statistics – Failing with MongoDB2 people · 4 points · first shared 2011 · discussion on HN
- 6Building SoundCloud Mobile with Backbone.js1 people · 36 points · first shared 2011 · 5 comments on HN
- 7Introducing the Large Hadron Migrator1 people · 16 points · first shared 2012 · 1 comments on HN
- 8Architecture for SoundCloud's new Search and Explore features1 people · 3 points · first shared 2012 · discussion on HN
- 9Mountable API Proxies1 people · 2 points · first shared 2011 · discussion on HN
- 10Hack Your Way to JSConf EU in Berlin1 people · 1 points · first shared 2011 · discussion on HN
- 11Go at SoundCloud1 people · 1 points · first shared 2012 · discussion on HN
- 12Doing the right thing1 people · 1 points · first shared 2011 · discussion on HN
- 13Win a trip to the Barcelona Ruby Conference1 people · 1 points · first shared 2013 · discussion on HN
What HN people wrote when they linked it
BitMastro · 2013-08-15
dl.google.com handles all the downloads for google chrome, factory images for android, eclipse.. not exactly tiny and especially not insignificant
complex web app:
Cloudfare https://www.cloudflare.com/railgun
BBC http://www.quora.com/Go-programming-language/Is-Google-Go-ready-for-pr…
Soundcloud http://backstage.soundcloud.com/2012/07/go-at-soundcloud/
gerrit · 2013-05-15
SoundCloud is using go lot: http://backstage.soundcloud.com/2012/07/go-at-soundcloud/
lincolnbryant · 2012-12-26
Soundcloud wrote a blog post http://backstage.soundcloud.com/2011/04/failing-with-mongodb/ about the specifics of how they failed in implementing an analytics platform in MongoDB, then went with Cassandra (and why). I have been at a company where it was on developers to deploy mongo clusters, setting up logging can suck, but still there are no numbers or even application integration specifics here. As someone pointed out - manual denormilization can suck. There are options like MongoHQ and Heroku though so this shouldn't resolve to "don't try a new data store its hard and possibly buggy".
mikeknoop · 2012-12-26
I've implemented something similar in the same manner (over-riding `new`). The original idea came from here: http://backstage.soundcloud.com/2012/06/building-the-next-soundcloud/
One implementation detail I ran into is how to detect dupes. When you have Backbone Models, this is easy: every model has an `id`. But say you want to apply this same singleton behavior to a Backbone Collection, which don't have natively have `id`s. I saw two options:
1. Assign an `id` to the collection when instantiated (could just be a string, so that you can force a singleton only when you desire it).
2. De-dupe based on `instanceof` checks. The downside here is you always get a singleton even if you might want a one-off instance of a collection.
Are there any other options? Can your Identiy Map handle collections?
jpk · 2012-09-14
SoundCloud also precompiles their Handlebars templates. In general, it seems like a good idea.
http://backstage.soundcloud.com/2012/06/building-the-next-soundcloud/
DanielRibeiro · 2012-09-03
Alternatively, if using Active Record/Rails, you can use Large Hadron Migrator gem: http://backstage.soundcloud.com/2011/05/introducing-the-large-hadron-m…
thezilch · 2013-08-27
There are plenty accounts of Go in production: (Google's dl.google.com) https://groups.google.com/d/msg/golang-nuts/BNUNbKSypE0/E4qSfpx9qI8J, (CloudFlare's Railgun) http://blog.cloudflare.com/go-at-cloudflare, (Bit.ly) http://word.bitly.com/post/29550171827/go-go-gadget, (SoundCloud) http://backstage.soundcloud.com/2012/07/go-at-soundcloud/, (Disqus's realtime-backend) http://blog.disqus.com/post/51155103801/trying-out-this-go-thing, etc
mseepgood · 2013-04-04
> Apart from Google (who uses it for Youtube), Go hasn't really been used in large projects.
I don't know how large each of these projects is, but a growing number of companies are using it for serious projects:
Iron.io: How We Went from 30 Servers to 2 with Go
http://blog.iron.io/2013/03/how-we-went-from-30-servers-to-2-go.html
Behind the Scenes: Big Data at Torbit
http://torbit.com/blog/2013/02/19/big-data-at-torbit/
pool.ntp.org DNS server in Go
http://news.ntppool.org/2012/10/new-dns-server.html
Juju at Canonical
http://www.reddit.com/r/programming/comments/18atce/juju_canonical_109…
Go at bitly
http://word.bitly.com/post/29550171827/go-go-gadget
CloudFlare blows hole in laws of Web physics with Go and Railgun
http://arstechnica.com/information-technology/2013/02/cloudflare-blows…
dl.google.com now served by Go
https://groups.google.com/forum/?fromgroups=#!topic/golang-nuts/BNUNbK…
Go At Conformal
https://www.cyphertite.com/blog.php?/archives/7-Go-at-Conformal..html
Go at Novartis
https://plus.google.com/114945221884326152379/posts/d1SVaqkRyTL
Go at the BBC
http://www.quora.com/Go-programming-language/Is-Google-Go-ready-for-pr…
Go at SoundCloud
http://backstage.soundcloud.com/2012/07/go-at-soundcloud/
Go at CloudFlare
http://blog.cloudflare.com/go-at-cloudflare
Go at Heroku
http://blog.golang.org/2011/04/go-at-heroku.html
Building StatHat with…
ungerik · 2012-09-16
Here is the content:
Go at Heroku
http://blog.golang.org/2011/04/go-at-heroku.html
Why you PHP guys should learn Golang
http://www.mikespook.com/2012/08/why-you-php-guys-should-learn-golang/
Go at CloudFlare
http://blog.cloudflare.com/go-at-cloudflare
Go at Moovweb
https://groups.google.com/forum/#!topic/golang-nuts/MeiTNnGhLg8/discus…
Go at SoundCloud
http://backstage.soundcloud.com/2012/07/go-at-soundcloud/
Go at the BBC
http://www.quora.com/Go-programming-lGetConsoleTitleanguage/Is-Google-…
Go at Novartis
https://plus.google.com/114945221884326152379/posts/d1SVaqkRyTL
Google I/O 2012: Go in production
http://www.youtube.com/watch?v=kKQLhGZVN4A
@derekcollison: "Prediction: Go will become the dominant language for systems work in IaaS, Orchestration, and PaaS in 24 months."
https://twitter.com/derekcollison/status/245522124666716160
@tobi: "I have now completed two projects in Go. I predict that it's going to be the dominant language for server work."
https://twitter.com/tobi/status/245873677483274240
Why I went from Python to Go (and not node.js)
http://jordanorelli.tumblr.com/post/31533769172/why-i-went-from-python…
Packages/Libs
http://godashboard.appspot.com/
http://go.pkgdoc.org/