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! :) On Thursday, October 2, 2014, Joseph Pachod <[email protected]> wrote: > 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 > > On Thu, Oct 2, 2014 at 2:21 PM, Eric Pederson <[email protected] > <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote: > >> 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 >> <https://www.youtube.com/watch?v=U1C5m8b0qg0>. >> >> The books you have (EIP and SOA Patterns) are great. >> >> To those I would add: >> >> - Akka Concurrency <http://www.artima.com/shop/akka_concurrency> >> - I Heart Logs <http://shop.oreilly.com/product/0636920034339.do> by Jay >> Kreps, the designer of Kafka (there is also a webcast >> <http://www.oreilly.com/pub/e/3098>). This is a collection of his >> recent epic blog posts (30 pages, highly recommended). >> - Camel in Action <http://www.manning.com/ibsen/> >> - Event Processing in Action <http://www.manning.com/etzion/> >> - Java Concurrency in Practice (of course) >> - Jeff Hodge's Notes on Distributed Systems for Young Bloods >> <http://www.somethingsimilar.com/2013/01/14/notes-on-distributed-systems-for-young-bloods/> >> blog post and his Practicalities of Distributed Systems >> <https://www.youtube.com/watch?v=BKqgGpAOv1w> videos >> - Pattern-oriented Software Architecture vol 4 >> <http://www.amazon.com/Pattern-Oriented-Software-Architecture-Volume-Distributed/dp/0470059028> >> (and 2) >> <http://www.amazon.com/Pattern-Oriented-Software-Architecture-Volume-Concurrent/dp/0471606952> >> >> There is a gap between academia and industry knowledge right now. This >> is discussed in a post >> <http://the-paper-trail.org/blog/distributed-systems-theory-for-the-distributed-systems-engineer/> >> 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 >> <http://brooker.co.za/blog/2014/08/10/the-space-between.html>. Besides >> papers he links to some other good people to follow like Aphyr >> <http://aphyr.com/> and Peter Bailis <http://www.bailis.org/blog/>. I >> would also recommend following Kellabyte <http://kellabyte.com/>. >> >> Working to fill the gap are a few books in progress >> - Reactive Design Patterns <http://manning.com/kuhn/> by Akka's own >> Roland Kuhn and Typesafe's Jamie Allen >> - Akka in Action <http://www.manning.com/roestenburg/> >> - Designing Data Intensive Applications >> <http://shop.oreilly.com/product/0636920032175.do> by Martin Kleppman >> from the Samza Project (also check out his recent video >> <https://www.youtube.com/watch?v=fU9hR3kiOK0>) >> - Unified Log Processing <http://www.manning.com/dean/> >> >> Essential ACM Queue articles >> - There's Just No Getting around It: You're Building a Distributed System >> <http://queue.acm.org/detail.cfm?id=2482856> >> - The Network is Reliable <http://queue.acm.org/detail.cfm?id=2655736> >> - Eventual Consistency Today: Limitations, Extensions, and Beyond >> <http://queue.acm.org/detail.cfm?id=2462076> >> >> I recommend getting familiar with the CAP Theorem. You're going to run >> into it all over the place. >> - Towards Robust Distributed Systems >> <http://www.eecs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf> by >> Eric Brewer, the guy who came up with CAP. >> - CAP Twelve Years Later >> <http://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed> >> by >> Eric Brewer >> - Availability and Partition Tolerance >> <http://pl.atyp.us/wordpress/index.php/2009/11/availability-and-partition-tolerance/> >> - Consistency Tradeoffs in Modern Database Design >> <http://cs-www.cs.yale.edu/homes/dna/papers/abadi-pacelc.pdf> (aka the >> PACELC paper) >> - Perspectives on the CAP Theorem >> <http://groups.csail.mit.edu/tds/papers/Gilbert/Brewer2.pdf> >> >> On the academic textbook side >> - Introduction to Secure and Reliable Distributed Programming >> <http://www.distributedprogramming.net/)> (also in Jonas' list) >> - Guide to Reliable Distributed Systems >> <http://www.amazon.com/Guide-Reliable-Distributed-Systems-High-Assurance/dp/1447124154.> >> by Ken Birman. Also check out his recent syllabus >> <http://www.cs.cornell.edu/Courses/CS5412/2014sp/Syllabus.htm> 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 <http://en.wikipedia.org/wiki/Virtual_synchrony> that is >> useful in a lot of use cases. An implementation of Virtual Synchrony is >> the open source JGroups <http://www.jgroups.org/>. >> - Principles of Computer System Design >> <http://www.amazon.com/Principles-Computer-System-Design-Introduction/dp/0123749573>. >> Second half of book is online >> <http://ocw.mit.edu/resources/res-6-004-principles-of-computer-system-design-an-introduction-spring-2009/> >> . >> >> Have fun! >> >> >> On Wednesday, October 1, 2014 8:25:09 AM UTC-4, joseph wrote: >>> >>> 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 >>> ( http://www.amazon.com/Enterprise-Integration- >>> Patterns-Designing-Deploying/dp/0321200683/ref=pd_sim_b_1? >>> ie=UTF8&refRID=000HGGFMPKZB55H62HQJ ) but I don't know how worth >>> they're... >>> >>> 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 ;) >>> >>> On Wed, Oct 1, 2014 at 2:16 PM, Joseph Pachod <[email protected]> >>> wrote: >>> >>>> 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 >>>> >>>> On Tue, Sep 30, 2014 at 9:10 PM, Jonas Bonér <[email protected]> >>>> wrote: >>>> >>>>> Here is a list of some of the more recent nice books I’ve read on >>>>> distributed systems: >>>>> >>>>> - This is a nice one IMO. Brings in failure as a first class >>>>> concept, makes it suitable for the real world: http://www. >>>>> distributedprogramming.net/ >>>>> - This one is interesting as well. More theoretical, but eye >>>>> opening. Written by Gul Agha’s student. http://www.amazon.co.uk/ >>>>> Programming-Distributed-Computing-Systems- >>>>> Foundational/dp/0262018985 >>>>> >>>>> <http://www.amazon.co.uk/Programming-Distributed-Computing-Systems-Foundational/dp/0262018985> >>>>> - I’m reading this one right now, too early to judge: >>>>> http://www.amazon.com/Distributed-Computing-Through- >>>>> Combinatorial-Topology/dp/0124045782 >>>>> >>>>> <http://www.amazon.com/Distributed-Computing-Through-Combinatorial-Topology/dp/0124045782> >>>>> - This one is the one with interesting algos, but that ignores >>>>> failure (but most books do that actually): http://www.amazon.com/ >>>>> Distributed-Algorithms-Message-Passing-Systems- >>>>> Michel/dp/3642381227/ >>>>> >>>>> <http://www.amazon.com/Distributed-Algorithms-Message-Passing-Systems-Michel/dp/3642381227/> >>>>> - This is a nice one on multicore programming (related): >>>>> http://www.amazon.com/Art-Multiprocessor-Programming- >>>>> Revised-Reprint/dp/0123973376 >>>>> >>>>> <http://www.amazon.com/Art-Multiprocessor-Programming-Revised-Reprint/dp/0123973376> >>>>> - Joe Armstrong’s thesis, essential reading for building >>>>> fault-tolerant systems: http://www.sics.se/~joe/ >>>>> thesis/armstrong_thesis_2003.pdf >>>>> <http://www.sics.se/~joe/thesis/armstrong_thesis_2003.pdf> >>>>> >>>>> 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 >>>>> >>>>> >>>>> On Tue, Sep 30, 2014 at 2:17 PM, Joseph Pachod <[email protected]> >>>>> wrote: >>>>> >>>>>> 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... >>>>>> >>>>>> -- >>>>>> >>>>>>>>>> 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 [email protected]. >>>>>> To post to this group, send email to [email protected]. >>>>>> 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 <https://twitter.com/jboner> >>>>> Public Key: keybase.io/jonas >>>>> >>>>> -- >>>>> >>>>>>>>>> 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 [email protected]. >>>>> To post to this group, send email to [email protected]. >>>>> Visit this group at http://groups.google.com/group/akka-user. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> >>> -- >> >>>>>>>>>> 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 [email protected] >> <javascript:_e(%7B%7D,'cvml','akka-user%[email protected]');> >> . >> To post to this group, send email to [email protected] >> <javascript:_e(%7B%7D,'cvml','[email protected]');>. >> Visit this group at http://groups.google.com/group/akka-user. >> For more options, visit https://groups.google.com/d/optout. >> > > -- > >>>>>>>>>> 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 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 > [email protected] > <javascript:_e(%7B%7D,'cvml','akka-user%[email protected]');> > . > To post to this group, send email to [email protected] > <javascript:_e(%7B%7D,'cvml','[email protected]');>. > 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 -- >>>>>>>>>> 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.
