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
    S

    Steve Vinoski

    steve.vinoski.net · Personal blog · on HN since 2008

    Steve Vinoski writes about Erlang, distributed systems, web server benchmarks, and the tradeoffs of programming languages and RPC.

    Visit blogHN submissions
    Distributed SystemsLanguages & Compilers
    What HN says

    HN commenters call his distributed systems paper the best introduction to the topic, and link him for Erlang concurrency and web server benchmarks.

    Stats for nerds
    30HN people shared it
    28linked in comments
    177story points
    Dec 2021last shared
    2008people per year2021

    Top posts on HN

    1. 1
      Concurrency and Message Passing in Erlang [pdf]
      1 person · 34 points · first shared 2012 · Discussion on HN
    2. 2
      Erlang Web Server Benchmarking
      3 people · 30 points · first shared 2011 · Discussion on HN
    3. 3
      Erlang: It’s About Reliability
      2 people · 22 points · first shared 2008 · 1 comments on HN
    4. 4
      Convenience over Correctness (2008) [pdf]
      4 people · 17 points · first shared 2008 · 2 comments on HN
    5. 5
      You Have to Experience It
      1 person · 16 points · first shared 2008 · 5 comments on HN
    6. 6
      Just What We Need: Another RPC Package
      1 person · 8 points · first shared 2008 · 8 comments on HN
    7. 7
      Process Bottlenecks in Erlang Web Apps
      1 person · 8 points · first shared 2011 · Discussion on HN
    8. 8
      Thinking in Language, But Not Clearly (Erlang vs JVM)
      1 person · 7 points · first shared 2008 · Discussion on HN
    9. 9
      Protocol Buffers: Leaky RPC
      2 people · 6 points · first shared 2008 · Discussion on HN
    10. 10
      Roy - Statically typed functional language targeting Javascript [pdf]
      1 person · 5 points · first shared 2012 · Discussion on HN

    What HN people wrote when they linked it

    • mbrubeckOct 2009

      It's not the scale, it's the reliability.

      When I worked at Amazon.com we had a deeply-ingrained hatred for all of the SQL databases in our systems. Now, we knew perfectly well how to scale them through partitioning and other means. But making them highly available was another matter. Replication and failover give you basic reliability, but it's very limited and inflexible compared to a real distributed datastore with master-master replication, partition tolerance, consensus and/or eventual consistency, or other availability-oriented features.

      I think everyone is missing the boat by evaluating datastores in terms of scalability. Even at Amazon's size, database scaling is only occasionally a problem. By the time your site is that big, hopefully you've split your software into independent services, each with its own (relatively) small database. And for the services that do need a distributed cache or persistence layer, there's now a huge body of literature and software that solves those problems.

      Reliability is another matter. Every business can benefit from improved reliability, regardless of size. And reliability is harder. Scaling is basically an engineering problem, which can be solved with the right architecture and algorithms. Reliability is more like security: it's a weakest-link problem and requires constant vigilance in all areas, including engineering, testing, operations, and deployment. Adding redundant components improves reliability against hardware…

    • knutinAug 2012

      Hi,

      Author of elli here.

      It is very hard to create real and meaningful benchmarks. The "Hello world" benchmarks are very useful when writing a webserver and you are curious about where to optimize it, if necessary. Even though they are very superficial, they can also help you compare two webservers.

      It is very easy to run the benchmarks on your own hardware. Get elli, then run "elli:start_link()" and hit "/hello?name=john" with apachebench or your tool of choice.

      Elli is only useful if you want to write an Erlang application that exposes a HTTP API. If you want raw performance, Haskell has some servers which does 300k+ rps.

      Here is a very good article from Steve Vinoski who is overall a very smart and experienced guy on the topic of benchmarking Erlang webservers: http://steve.vinoski.net/blog/2011/05/09/erlang-web-server-benchmarking/

      Knut

    • pietrofmaggiJul 2010

      Another nice example can be found in the last "Functional Web" column on IEEE Internet Computing by Steve Vinosky:
      http://steve.vinoski.net/pdf/IC-Getting_Started_with_Google_App_Engine_and_Clojure.pdf

      In the July/August 2010 column, Getting Started with Google App Engine and Clojure, guest columnist Aaron Bedra shows how to use Clojure, a relatively new but robust Lisp implementation on the Java Virtual Machine, create and deploy an application using the Compojure web framework on the Google App Engine platform.

    • whalesaladDec 2021

      I shared this because I was trying to find "Virding's Rule" but came up short. Finally found it (http://steve.vinoski.net/blog/2008/02/07/wiger-on-erlang-style-concurrency/)

      Any sufficiently complicated concurrent program in another language contains
      an ad hoc informally-specified bug-ridden slow implementation of half of Erlang.

      raises hand guilty as charged

    • lincolnqApr 2012

      I agree that the priors would suggest that you are correct, however, let me give some evidence to update you:

      The Warp web server for Haskell is the fastest Web application server that exists. http://steve.vinoski.net/pdf/IC-Warp_a_Haskell_Web_Server.pdf [pdf, but easy to read] -- in the comparison on page 2, php handled 3400 requests per second, and Warp 81000.

    • bochiAug 2014

      This article is the best introduction to the topic in my opinion: http://steve.vinoski.net/pdf/IC-Rediscovering-Distributed-Systems.pdf

      Another good reference for understanding distributed databases is: http://cs-www.cs.yale.edu/homes/dna/papers/abadi-pacelc.pdf

    Related

    Richard Jonesmetabrew.com41 people

    How we use IRC at Last.fm

    Richard Jones
    Personal · last shared 2025
    jlouisjlouisramblings.blogspot.com54 people

    Erlang programmer’s view on Curiosity Rover software

    jlouis
    Personal · last shared 2025
    Aphyraphyr.com551 people

    Hexing the technical interview (2017)

    Aphyr
    Personal · last shared 2026
    Fred Hébertferd.ca168 people

    Awk in 20 Minutes (2015)

    Fred Hébert
    Personal · last shared 2026
    Steve Klabnikwords.steveklabnik.com284 people

    A Sad Day for Rust

    Steve Klabnik
    Personal · last shared 2026
    Joe Armstrongsics.se/~joe31 people

    Why OO Sucks

    Joe Armstrong
    Personal · last shared 2019
    Erlang Solutions Blogerlang-solutions.com88 people

    An introduction to RabbitMQ

    Erlang Solutions Blog
    Company · last shared 2026
    The Erlangelisttheerlangelist.com36 people

    Why Elixir (2014)

    The Erlangelist
    Personal · last shared 2026