Composable Futures with Akka 2.0
Featuring Java, Scala and Akka Code Examples
Read this log from the bottom up for proper chronological order.
Newest changes are at the top, oldest at the bottom.
Oct 4, 2012
- Code examples now compile with JDK 6 & 7, Scala 2.9.2, Akka 2.0.3, and SBT 0.11.3 and 0.12.
- Replacement scala and javap scripts are no longer required so they have been removed.
- Fixed typos.
- Now recommending JDK 7, 64 bit version.
- Now recommending Eclipse Juno or IntelliJ IDEA 11.
- Eclipse Juno Scala interpreter described.
- Changed search string for map, traverse and fold examples from "Simpler Concurrency" to "Scala".
June 9, 2012
- Updated code examples to Scala 2.9.1-1 with Akka 2.0.1.
April 14, 2012
- Added code examples presented at Google HQ
April 11, 2012
The book is now 174 pages long.
- Added new FlatMap example for Scala and Java, with an extended writeup.
March 11, 2012
NEWS FLASH - Scala
IDE nightly build for Scala 2.9.x now compiles annd runs all the code examples. Use Eclipse Indigo with
JDK 6; I tested with the 64 bit version. Be sure to set continuations:enable as described in the docs.
NEWS FLASH - IntelliJ IDEA 11.1.1 works properly with Akka Futures.
The book is now 166 pages long.
- Removed warning stating that the Scala plugin for Eclipse does not work properly with Akka futures. (Hooray!)
- Added instructions for downloading the nightly build of the Scala plugin for Eclipse and enabling continuations
- Removed warning stating IntelliJ IDEA's code completion did not work properly with Futures.onComplete(), causing
another chained method is highlighted as an error. (Hooray!)
- Defined parallelism in j.u.c. chapter.
- More information provided on ForkJoinPool implementations.
- Fold() moved to Future Collections Transformations chapter.
- Dataflow explanation improved.
- Corrected code examples that chained onComplete with andThen so they became two successive andThen invocations.
March 10, 2012
- Added thread identification printlns to Recover and Sequence code examples.
- Many small changes throughout first 3 chapters and reordered a few subsections.
- Corrected some links that were marked but did not go anywhere and added some more.
- Added flow() example.
March 6, 2012
The book is now 158 pages long.
- Removed empty chapter on Unit Testing and Twitter notes.
- Updated code examples to Akka 2.0 final.
- Completed remaining code examples.
- Wrote up Java for-comprehension section with a proper code example.
- Wrote up a Java map example that mirrors the idiom used in the Scala example.
- Updated javap and scala scripts for Scala 2.9.1-1.
March 5, 2012
The book is now 163 pages long.
- New Scala Future.flatMap section and code example written; Java example is not ready yet.
- For-comprehension section was filled out.
- New example for OnComplete.scala was written.
- Removed all code examples relating to Future.filter, as per Typesafe recommendations. Made a new
directory to hold these code examples, akkaFutures.archive.
- Updated build.sbt to use Scala compiler 2.9.1-1.
- Updated build.sbt so generated ScalaDoc now contains links to source code to create
Scaladoc in target/scala-2.9.1-1/api/index.html. To create ScalaDoc for the code examples, type
- The latest Eclipse plugin for Scala is still not working for me; it was supposed to allow the Java code
OnComplete instances to compile. I am currently just using IntelliJ IDEA 11 with the Scala and SBT
- Code examples are still built against Akka 2.0-RC2. I am working on RC4-compatible code now, however the
changes affect many pages in the book, so this update is proceeding slowly. The most recent version of the
book was released February 26.
- Akka 2.0-RC4 came out March 1 and supposedly just contained bug fixes.
- Akka 2.0-RC3 came out February 28 and broke lots of code examples.
- Tweets with marked with the #akkafuture hashtag are now shown on the book's microsite.
- Git repo URL information sent in download and update emails was corrected to use https instead of git.
- Updated the FutureBridge project URL in the book.
February 26, 2012
The book is now 171 pages long.
- Book cover now shows the last modified date.
- The diagram that accompanies the condensed explanation of futures in Chapter 1 was completely redone, and the explanation was updated to match Akka RC2.
- New terms were defined for future methods and classes: transformational, concomitant and support.
- The try-catch-finally section was greatly expanded and was moved to chapter 6, which defines most of the methods required.
- More new code examples have been written and most of the previous code examples have been improved.
- Update configuration code examples and narratives to include logging and recent API changes.
- Most of the first 8 chapters are now complete - just filling in a few blank spots now and shuffling sections
February 20, 2012
At 150 pages, the book is currently twice as long as the original target, and there is more information to
add. The price of the book was raised, but everyone who bought at the old price will continue to get free updates
as they become available.
Some recent changes:
- Save date is now printed on the front cover, so you will know when the last changes were made to your
copy. New versions are created almost every day.
- Hundreds of corrections have been made throughout, and gaps have been filled.
- Guidelines for using futures vs. actors are now included.
- Definitions for asynchronous and non-blocking are provided; discussion of threads has been deprecated in
favor of stack frames.
- More diagrams have been added to Chapter 1. The condensed explanation of futures in Chapter 1 has a really
- scala and javap scripts are included in the akkaFutures directory; update your copy of the source code and
read the comments in the scripts to learn more.
- An Akka configuration section was added, and many code examples were updated to use this information.
- The first 88 pages have been edited for continuity and are ready for technical review.
- Code examples have been heavily worked over. The last half of the book needs to catch up with the code examples.
- Some of the blocking code examples do not provide much value and will be deleted.
- Chapter 10 contains some notes comparing Twitter futures against Akka futures. This chapter might be filled
out, or it might get cut.