Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Basho Blog

    basho.com · Company blog · on HN since 2009

    Basho, maker of the Riak database, wrote about distributed systems, Erlang, vector clocks, and CRDTs.

    Visit blogHN submissions
    Distributed SystemsDatabases
    What HN says

    Commenters find its wiki and blog useful for Riak schema design and distributed systems concepts such as CRDTs.

    Stats for nerds
    121HN people shared it
    128linked in comments
    3.6Kstory points
    Sep 2017last shared
    2010people per year2017

    Top posts on HN

    1. 1
      Microservices
      3 people · 319 points · first shared 2016 · 146 comments on HN
    2. 2
      Erlang at Basho, Five Years Later
      2 people · 188 points · first shared 2013 · 47 comments on HN
    3. 3
      Time Series, the new shiny?
      2 people · 180 points · first shared 2016 · 76 comments on HN
    4. 4
      Riak 1.0
      1 person · 166 points · first shared 2011 · 39 comments on HN
    5. 5
      Introducing Riak 2.0: Data Types, Strong Consistency, Full-Text Search
      2 people · 145 points · first shared 2013 · 22 comments on HN
    6. 6
      Riak CS is Now Open Source
      1 person · 132 points · first shared 2013 · 11 comments on HN
    7. 7
      Riak 1.2 Officially Released
      1 person · 124 points · first shared 2012 · 40 comments on HN
    8. 8
      Basho Releases Riak v1.0.0
      1 person · 122 points · first shared 2011 · 20 comments on HN
    9. 9
      It's Time to Drop the "F" Bomb - or "Lies, Damn Lies, and NoSQL."
      2 people · 115 points · first shared 2011 · 64 comments on HN
    10. 10
      Clocks Are Bad, Or, Welcome to the World of Distributed Systems
      3 people · 99 points · first shared 2013 · 38 comments on HN

    What HN people wrote when they linked it

    • jamwtJun 2011

      Without going too much into specifics and picking on individual databases (which I could do, boy do I have the scars...)

      When you hit a certain traffic level, scalability, latency and robustness become far more important than single-node ops/s. I need to be able to add nodes and repair failed nodes while under load--I need the 99.9% latency mark to stay ~100ms while doing so. I don't really care how many bajillions of ops a second your database can do in some concocted scenario, b/c you're not going to do that many in the real world anyway (trust me, we tried). The disk subsystem is going to give you a few hundred, maybe a few thousand if you're lucky, IOPS, then your latency will spike to hell and your phone will wake you up at night.

      Maybe in the world where 99% of ops are reads, you will put up impressive numbers, but now you're just showing you are pretty good at using the disk cache. That's a relatively easy problem.

      The riak guys seem to get all this better than most: http://blog.basho.com/2011/05/11/Lies-Damn-Lies-And-NoSQL/

      So, to give you a short answer to your direct question:

      Use SLC SSDs + md + RAID-0. Have at least 5 nodes. Use bitcask, but realize that your keys will need to fit in memory. Also, realize that really small values aren't a great fit for Riak in some ways b/c the overhead per value is at least a few hundred bytes.

      Also, it's important to note this is where I'm at right now, but maybe not where you (generally) are at. Riak may not make…

    • keppyMar 2015

      > Another such area of work is logical time, manifest as vector clocks, version vectors, and other ways of abstracting over the ordering of events. This idea generally acknowledges the inability to assume synchronized clocks and builds notions of ordering for a world in which clocks are entirely unreliable.

      Hardware is unreliable. Software is possibly less reliable. We have known that for a long time. The author talks on a conceptual level about logical time, but this concept isn't enough to understand the real challenges & possible solutions of keeping interactions in your system logically ordered in the dimension of time[0].

      > You can think of coordination as providing a logical surrogate for "now." When used in that way, however, these protocols have a cost, resulting from something they all fundamentally have in common: constant communication. For example, if you coordinate an ordering for all of the things that happen in your distributed system, then at best you are able to provide a response latency no less than the round-trip time (two sequential message deliveries) inside that system.

      Consensus protocols don't provide a logical surrogate for 'now', a log does that. The silver bullet for assuring that your transactions are ordered correctly is immutability[1]--"If two identical, deterministic processes begin in the same state and get the same inputs in the same order, they will produce the same output and end in the same state.[0]"
      It's important, from the…

    • bkudriaJul 2011

      San Francisco, CA - Yammer

      Yammer is a cool tech startup masquerading as an enterprise software vendor. We're building an enterprise social network (think Facebook, but for your company. Also, better.) and we need your help. We build our product with insight and wisdom gained from the consumer social networking space, but we charge enterprise prices (and our customers pay them!) We're fighting some big serious competitors (Salesforce/Chatter, Jive, and VMWare/Socialcast) and this space has never been more exciting. Yammer is really changing the way people get work done. We have real challenges to overcome and we're doing our best to make a kick-ass product that makes our users happy.

      Tech we use: Ruby/Rails, Scala, and Node/JS. We have Obj-C and C# stuff too.

      Some bullet points for you to skim:

      • Amazing group of smart engineers to work with. Really.

      • We hack in Ruby/Rails, Scala/Java, Javascript/JQuery/Node.js/Adobe AIR, Obj-C for iOS, and some MSFT/Sharepoint stuff.

      • Competitive compensation. Enough said.

      • Delicious catered lunch and dinner daily, with a 3PM snack cart. (Really.) Also a fully-stocked beer-and-beverage fridge.

      • Fancy Apple hardware of your choice (you can have a PC if you really want one.)

      Some links for you to read more:

      • Our jobs page: https://www.yammer.com/jobs

      • Our Engineering blog: http://eng.yammer.com/

      • A video of a talk given by Coda Hale and Ryan Kennedy about how we use Riak at Yammer:…

    • nirvanaNov 2012

      Dynamo seems to be still pretty early in development. You might want to watch the video linked to the page from the 0redev conference. He doesn't talk about dynamo much, but he does give "2013" as the date for Dynamo.

      On the WebSockets issue, I'd check out Cowboy. Cowboy seems to be the new hotness in erlang web apps. It has at least some support for web sockets.

      https://github.com/extend/cowboy

      If you're looking for a full featured web framework with built-in web socket support then maybe what you really want is Nitrogen: http://nitrogenproject.com

      Finally, and just for completeness, since I'm mentioning web frameworks, you'll probably want to see what ChicagoBoss's WS story is: http://www.chicagoboss.org or if someone's done something with WebMachine and websockets: http://basho.com

      I think Nitrogen sounds like the best bet.

      Since Elixir seems to mix effortlessly with Erlang, you should be able to write your code in Elixir using any of these frameworks.

    • SanFranManDanFeb 2016

      Riot Games is a pretty big one.
      Looking at erlangs site selecting a few:

      AdRoll
      Facebook Chat
      TMobile

      http://erlang.org/faq/introduction.html

      Amazon SimpleDB
      Delicious
      From: http://stackoverflow.com/questions/1636455/where-is-erlang-used-and-why

      Also many of the companies using Riak (written in Erlang) also leverage erlang. Some pretty big names use it.

      http://basho.com/about/customers/

      I would say that Erlang has more than proved itself.

      One aspect of it is that it is used more of an infrastructure language so not many people see it as glamorous as rushing out to the Go community to brag about their new backend. Its a lot of mature companies that have been around a while and don't really need to show off their infrastructure.

      Also Elixir is gaining momentum (but still a blip) as a very viable language built on erlang.

      Use what you want and what works.

    • rdtscMay 2014

      Interesting, I have seen CRDTs mostly in the Erlang context (monitoring and following works Basho has been doing for Riak).

      Basically a lot of this:

      http://basho.com/tag/crdt

      But using Haskell's type system is an interesting idea.

      You can start with one level higher than just looking for associative, commutative and idempotent, because that actually comes the definition of a semilattice

      http://en.wikipedia.org/wiki/Semilattice

      The crucial part is that you have an appropriate meet or join operator (and that it satisfies the above requirements).

      Informally think of a functions like max() over natural numbers or a union() over sets. Those are some examples.

      I don't know Haskell but found this interesting gist of someone who has tried this, and frankly a lot of stuff there is above my head, but it might help you:

      https://gist.github.com/pozorvlak/6540639

    Related

    Fred Hébertferd.ca168 people

    Awk in 20 Minutes (2015)

    Fred Hébert
    Personal · last shared 2026
    jlouisjlouisramblings.blogspot.com54 people

    Erlang programmer’s view on Curiosity Rover software

    jlouis
    Personal · last shared 2025
    MyNoSQLnosql.mypopescu.com66 people

    Attacking NoSQL and Node.js: Server-Side JavaScript Injection (SSJS)

    MyNoSQL
    Publication · last shared 2016
    Riak Blogriak.com16 people

    Microservices – Please, Don’t (2016)

    Riak Blog
    Company · last shared 2026
    Uber Engineering Blogeng.uber.com525 people

    Why Uber Engineering Switched from Postgres to MySQL

    Uber Engineering Blog
    Company · last shared 2025
    Aphyraphyr.com551 people

    Hexing the technical interview (2017)

    Aphyr
    Personal · last shared 2026
    The Morning Paperblog.acolyer.org606 people

    Local-first software: you own your data, in spite of the cloud

    The Morning Paper
    Personal · last shared 2026
    PingCAP Blogpingcap.com123 people

    Generics and Compile-Time in Rust

    PingCAP Blog
    Company · last shared 2026