Best book(s) on "distributed system" ?

1,490 views
Skip to first unread message

Joseph Pachod

unread,
Sep 30, 2014, 8:17:11 AM9/30/14
to akka...@googlegroups.com
Hello

Our small software shop has recently been bought and now we face the issue of building a distributed system, meaning by that moving from monolithic web based products to a "platform" with various optional modules.

The main characteristics looked for are :
- seen as a web app by the users
- mostly deployed on premises
- mission critical software (health care - emergency services), so downtime and seamless upgrades (most of the time at least)
- if possible should allow for multiple languages/stack on the JVM and even beyond (.Net I'm looking at you !).

Being a commuter and a big reader, I'm looking for the best resource(s) on the topic, any hints ?

Thanks in advance

Best
Joseph

PS: I already tried scala/akka/eventsourced (now akka persistence), but there's quite a step going to a proper distributed systems from there... 

Jonas Bonér

unread,
Sep 30, 2014, 3:11:06 PM9/30/14
to Akka User List

Here is a list of some of the more recent nice books I’ve read on distributed systems:

But I’ve learned most from reading papers. I can recommend all the papers listed in the references section in my talk: www.slideshare.net/jboner/the-road-to-akka-cluster-and-beyond


--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to akka-user+...@googlegroups.com.
To post to this group, send email to akka...@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.



--
Jonas Bonér
Home: jonasboner.com
Twitter: @jboner
Public Key: keybase.io/jonas

Joseph Pachod

unread,
Oct 1, 2014, 8:16:28 AM10/1/14
to akka...@googlegroups.com
Hi Jonas

Thanks a lot to take the time to answer such question, I really appreciate!

I'm a bit surprised though: most of the books/papers you refer are "research level", meaning for building solutions. I was kind of thinking/hoping some solutions would already be built 

Joseph Pachod

unread,
Oct 1, 2014, 8:25:09 AM10/1/14
to akka...@googlegroups.com
Hi Jonas

Thanks a lot to take the time to answer such question, I really appreciate!

I'm a bit surprised though: most of the books/papers you refer are "research level", meaning for building solutions. I was kind of thinking/hoping some solutions would already be built & reusable. Am I wrong ? If not, that's would be more the kind of book I look for currently: which are the current options, how they work, pro & cons, or even detailled documentation on how to build on top of some solutions existing. 

For example, I read about Finagle, which kind of address the same problem space than akka: what would each imply, how to dig more into each of them for building a distributed platform and so forth... 

For example, I found SOA Patterns (
 http://www.amazon.com/SOA-Patterns-Arnon-Rotem-Gal-Oz/dp/1933988266/ref=pd_sim_b_6?ie=UTF8&refRID=0W9E4FVDC683PX600T12 ) or Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions 

Still, I'll read at least the first one, "Introduction to Reliable and Secure Distributed Programming", with interest, but building from scratch such a tool feels  too.

Thanks again

Best
Joseph

ps : ignore previous partial answer, sorry for this. I've slammed my fingers with a hammer so they don't do mistakes again in the future ;)

Eric Pederson

unread,
Oct 2, 2014, 8:21:43 AM10/2/14
to akka...@googlegroups.com
Hi Joseph -

I'm on a similar journey.  It's a really interesting subject that wasn't covered at all (at least at the undergrad level) when I went to school. 

I would definitely recommend checking out Jonas's awesome list of references from his recent talk at Strange Loop

The books you have (EIP and SOA Patterns) are great.

To those I would add:

- I Heart Logs by Jay Kreps, the designer of Kafka (there is also a webcast).  This is a collection of his recent epic blog posts (30 pages, highly recommended).
- Java Concurrency in Practice (of course)

There is a gap between academia and industry knowledge right now.  This is discussed in a post on Henry Robinson's excellent Paper Trail blog where he provides a guide to digging deeper both on the academic side and by reading papers written by industry leaders like Google, Yahoo, etc.   Definitely read the links in the "First Steps" section.  The gap is also the topic of a post on Marc Brooker's blog.  Besides papers he links to some other good people to follow like Aphyr and Peter Bailis.  I would also recommend following Kellabyte.

Working to fill the gap are a few books in progress
- Reactive Design Patterns by Akka's own Roland Kuhn and Typesafe's Jamie Allen
Designing Data Intensive Applications by Martin Kleppman from the Samza Project (also check out his recent video)

Essential ACM Queue articles

I recommend getting familiar with the CAP Theorem.  You're going to run into it all over the place.
- Towards Robust Distributed Systems by Eric Brewer, the guy who came up with CAP.
CAP Twelve Years Later by Eric Brewer

On the academic textbook side
- Guide to Reliable Distributed Systems by Ken Birman.  Also check out his recent syllabus where there are slides covering the material in the book.  Speaking of Birman, he created a well-known distributed group membership algorithm called Virtual Synchrony that is useful in a lot of use cases.  An implementation of Virtual Synchrony is the open source JGroups.

Have fun!

Joseph Pachod

unread,
Oct 2, 2014, 9:16:16 AM10/2/14
to akka...@googlegroups.com
Hi Eric

Back from a great Cassandra event and there you're with more greatness, thanks a lot :)

Glad to have some opinion from someone on the same track, let's dig in then, really sweet.

Thanks again you all :)

Best
Joseph

Eric Pederson

unread,
Oct 2, 2014, 9:55:23 AM10/2/14
to akka...@googlegroups.com
Oh that's great!  Cassandra is a great way to learn about distributed systems. 

Speaking of Cassandra, I totally forgot about the Queue article by Werner Vogles, Eventual Consistency (http://queue.acm.org/detail.cfm?id=1466448). That is the one that sparked my interest originally.  That and the Dynamo (http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf) and BigTable (http://en.m.wikipedia.org/wiki/BigTable) papers.  

http://highscalability.com/ is another good blog to follow and look through for inspiration. 

Stop me before I link again!  :)
You received this message because you are subscribed to a topic in the Google Groups "Akka User List" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/akka-user/Snx8ufCvSEw/unsubscribe.
To unsubscribe from this group and all its topics, send an email to akka-user+...@googlegroups.com.

To post to this group, send email to akka...@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.


--
Sent from Gmail Mobile

Sean Walsh

unread,
Oct 2, 2014, 4:00:57 PM10/2/14
to akka...@googlegroups.com
FYI myself and Duncan Devore are in the final processes of getting a distributed system design book (with domain driven design, CQRS-ES, Scala, Akka...) into the Manning Meap and we expect the first few chapters to be available there in the October timeframe.

We will make an announcement here when it is available.

Joseph Pachod

unread,
Oct 6, 2014, 3:38:19 AM10/6/14
to akka...@googlegroups.com
Hi 

@Sean : Good to know :) Pondering whether to jump on the MEAP train to have an opportunity to comment or to wait for the release so I don't have to read again updated chapters for fear of losing good changes...

On a more akka topic, if ever there is a wiki somewhere where this list could be put and kept up to date, I would gladly do it. I didn't find any though.

Best
joseph

--

Eric Pederson

unread,
Oct 6, 2014, 8:47:26 AM10/6/14
to akka...@googlegroups.com
Hi Joseph - 

That's a good idea about the wiki.  I was thinking of doing a blog post.

There are a couple other books that are related to your "no downtime and seamless upgrades" requirements that I would recommend:

And one I left off the original list:
CQRS Journey - the examples are in C# but it's relevant to Akka Persistence and distributed systems in general.

Thx,

-- Eric

You received this message because you are subscribed to a topic in the Google Groups "Akka User List" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/akka-user/Snx8ufCvSEw/unsubscribe.
To unsubscribe from this group and all its topics, send an email to akka-user+...@googlegroups.com.

Roland Kuhn

unread,
Oct 6, 2014, 1:28:00 PM10/6/14
to akka-user
Would it make sense to add the books to the Akka pages? We currently only have the “Books” section of the docs, but it might make sense to include it in the site proper; perhaps as an FAQ? I’d recommend trying it out, going wild, and submitting a PR to https://github.com/akka/akka.github.com/ :-)

Regards,

Roland


Dr. Roland Kuhn
Akka Tech Lead
Typesafe – Reactive apps on the JVM.
twitter: @rolandkuhn


Vaughn Vernon

unread,
Oct 6, 2014, 1:57:24 PM10/6/14
to akka...@googlegroups.com
Yes, good idea, Roland.

I also want to make the list aware that my new book "Reactive Enterprise with Actor Model" is now available as Rough Cuts on Safari Books Online:


If you don't already have an account you can get a free trial account to read my book.

Best,
Vaughn

Hasan Ozgan

unread,
Oct 7, 2014, 3:53:57 AM10/7/14
to akka...@googlegroups.com
A Distributed Systems Reading List - http://dancres.github.io/Pages/



--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to akka-user+...@googlegroups.com.
To post to this group, send email to akka...@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.



--
Hasan Ozgan (a.k.a meddah)
Web Solution Architect

Joseph Pachod

unread,
Oct 8, 2014, 6:02:14 PM10/8/14
to akka...@googlegroups.com
Hi 

Roland, thanks to your answer I discovered this "books" page in the documentation. I'll give a try at some enhancements in the coming days, it looks feasible, somehow ;)

I'm not sure how to proceed though : a plain long listing, or trying to split the books mentioned in the current discussion in categories (like general distributed system knowledge, building a distributed system using akka, other (like these interviews with Werner Vogels and others solutions like for example Finagle)).

Any opinion ?

Best 
Joseph 

Jonas Bonér

unread,
Oct 9, 2014, 6:25:22 AM10/9/14
to Akka User List
On Mon, Oct 6, 2014 at 7:27 PM, Roland Kuhn <goo...@rkuhn.info> wrote:
Would it make sense to add the books to the Akka pages? We currently only have the “Books” section of the docs, but it might make sense to include it in the site proper; perhaps as an FAQ? I’d recommend trying it out, going wild, and submitting a PR to https://github.com/akka/akka.github.com/ :-)

...and papers. The list at the end of my Akka Cluster talk is a good start. :-)
We also have the blog post with influential papers on letitcrash.com we wrote some time ago. 



--
Reply all
Reply to author
Forward
0 new messages