Kilim: Fast, lightweight, cheap message passing in Java.
Google TechTalks2 HN recommenders · recommended in 2 months, 2009–2012
talk · advanced · 2009–2012 on HN
A Google Tech Talk by the author of Kilim, a Java library for lightweight actor-style message passing. It argues that message passing can replace shared-memory concurrency and claims performance competitive with or better than Erlang for huge numbers of actor…
Pointed to as evidence that Java can do fast, cheap message-passing concurrency, as an alternative to Erlang or Scala actors.
Up next
14 mo on HNThe Soul of Erlang and Elixir • Sasa Juric • GOTO 2019
GOTO Conferences
16 HN recommender · 2019–2024
11 mo on HN"Testing Distributed Systems w/ Deterministic Simulation" by Will Wilson
Strange Loop Conference
12 HN recommender · 2014–2024
10 mo on HNErlang Factory 2014 - That's 'Billion' with a 'B': Scaling to the Next Level at WhatsApp
Erlang Solutions
6 HN recommender · 2014–2022
9 mo on HN"Turning the database inside out with Apache Samza" by Martin Kleppmann
Strange Loop Conference
9 HN recommender · 2015–2025
9 mo on HNThe Language of the System - Rich Hickey
ClojureTV
10 HN recommender · 2013–2025
9 mo on HNGoogle I/O 2012 - Go Concurrency Patterns
Google for Developers
9 HN recommender · 2012–2025
7 mo on HNConflict Resolution for Eventual Consistency • Martin Kleppmann • GOTO 2016
GOTO Conferences
3 HN recommender · 2017–2020
7 mo on HN"Unison: a new distributed programming language" by Paul Chiusano
Strange Loop Conference
7 HN recommender · 2020–2023
6 mo on HNPaxos lecture (Raft user study)
Diego Ongaro
6 HN recommender · 2013–2024
5 mo on HNHewitt, Meijer and Szyperski: The Actor Model (everything you wanted to know...)
jasonofthel33t
5 HN recommender · 2015–2025
5 mo on HNAdvanced Topics in Programming Languages: A Lock-Free Hash Table
GoogleTalksArchive
4 HN recommender · 2013–2024
5 mo on HN"I See What You Mean" by Peter Alvaro
Strange Loop Conference
6 HN recommender · 2016–2019
4 comments from Hacker News
"Asynchronious message passing is old and great idea. Instead of synchronizing objects and dealing with deadlocks we try to isolate objects and let them exchange messages. Erlang proved it to be extremly powerful tool applicable to wide range of highly scalable mission critical applications. In JVM landscape big interest to this approach started after introducing Scala actors. " That statement is so very poorly informed! JMS ("surprise"?) has been a sign of "interest" in "Asynchronious message passing" in the "JVM landscape". I am not up on my Scala, but the author fails to convey (based on what I do know ;) the competence level that would lend weight to his attempt to address (much less support) the topic. For those interested in other JVM alternatives, Kilim seems quite promising and seems to hold its own quite well in benchmarks against Erlang. link ▶ this video link [scroll to end to see the impressive results for Kilim.] link [edit: added pdf link]
Actors are decoupled from the means by which they are executed. Scala has a nice system where you can run thousands of event-based actors in a thread pool. It grows the pool as needed (as threads block). See link While it may use threads, Scala's actor system effectively allows you to create thousands of actors. Kilim is actually a pure (depending on whether you see a byte-code processing system as pure) Java system that does the same thing (as far as I can tell): link Kilim's author did a nice Google Talk: ▶ this video EDIT: Fixed some grammar and added video link.
Erlang is a CSP system, first and foremost, and not actors. [CSP style concurrency on JVM]: ▶ this video (Kilim, it should be noted, was benchmarked as scaling better than Erlang/OTP.) link (paper in top comment is worth the read.) Disclaimer: I think Erlang/OTP rocks. But JVM has its moments, as well, and in fairness has earned the "most advanced VM" title.
SPEED :: In defence of Java, it is very quick when done right. See Kilim[1] for examples. SUPPORT :: On top of the speed Java has a supported hardware stack (Solaris). So if doing 100K connections is important to you, you can find engineers who can diagnose difficult problems on your whole stack. -------------- [1] ▶ this video at 23:23 . Java is quick without Kilim too, this is just an example with stats.