Free E-Books

Reactive Design Patterns

by Roland Kuhn and Jamie Allen

Modern applications present incredible design challenges: we expect near-realtime performance while managing petabyte-scale data and distribution across environments ranging from traditional servers to cloud systems to mobile devices. The Reactive Application model addresses these demands through new patterns designed to "react" effectively to user and system events, changes in load, competition for shared system resources, and unanticipated failures. Although reactive design patterns can be implemented using standard enterprise development tools, you best realize the benefits when you pair them with a functional programming language like Scala and an Actor-based concurrency system like Akka.

Reactive Design Patterns is a clearly-written guide for building event-driven distributed systems that are resilient, responsive, and scalable. Written by the authors of the Reactive Manifesto, this book teaches you to apply reactive design principles to the real problems of distributed application development. You'll discover technologies and paradigms that can be used to build reactive applications including Akka and other actor-based systems, functional programming, replication and distribution, and implementation techniques such as futures, iteratees, and reactive streams. While the book presents concrete examples in Scala, Java, JavaScript, and Erlang, the primary goal is to introduce patterns and best practices that you can use to apply reactive principles to common problems you'll face when building distributed systems.

The free sample PDF available here includes the first chapter. The authors will be releasing new chapters approximately one chapter per month. All registrants qualify for a Typesafe discount and will save 45% off the price of the full Reactive Design Patterns book (all formats) as it becomes available by referencing promotional code tsrdp. If you are interested in purchasing the full book get it here. Offer only valid at

Atomic Scala

by Bruce Eckel and Dianne Marsh

This should be your first Scala book, not your last. We show you enough to become familiar and comfortable with the language – competent, but not expert. You’ll write useful Scala code, but you won’t necessarily be able to read all the Scala code you encounter.

When you’re done, you’ll be ready for more complex Scala books, several of which we recommend at the end of this one.

This is a book for a dedicated novice. "Novice" because you don’t need prior programming knowledge, but “dedicated” because we’re giving you just enough to figure it out on your own. We give you a foundation in programming and in Scala but we don’t overwhelm you with the full extent of the language.

Beginning programmers should think of it as a game: You can get through, but you’ll need to solve a few puzzles along the way. Experienced programmers can move rapidly through the book and find the place where they need to slow down and start paying attention.

The free sample PDF available here contains the first half of the book (198 pages). To purchase the full book, please go to

Java 8 in Action

by Raoul-Gabriel Urma, Mario Fusco, and Alan Mycroft

While the term "lambda expression" may sound abstract and academic, Java 8 Lambdas can have a big impact on how you program every day. In simplest terms, a lambda expression is a function—a bit of code—that you can pass to another method as an argument. Thus, you can cope with changing requirements by using a behavior, represented by a lambda, as a parameter. Java 8's functional programming features, like lambdas and the new Stream API that enables a cleaner way to iterate through collections, can help you write concise, maintainable code that scales easily and performs well on multicore architectures.

Java 8 in Action is a clearly-written guide to Java 8 lambdas and functional programming in Java. It begins with a practical introduction to the structure and benefits of lambda expressions in real-world Java code. The book then introduces the Stream API and shows how it can make collections-related code radically easier to understand and maintain. Along the way, you'll discover new FP-oriented design patterns with Java 8 for code reuse, code readability, exception handling, data manipulation, and concurrency. For developers also exploring other functional languages on the JVM, the book concludes with a quick survey of useful functional features in Scala and Clojure.

The free sample PDF available here includes a subset of the book (Chapters 1-3, 78 pages). All registrants qualify for the Typesafe discount and will save 40% on the full book "Java 8 in Action" by referencing promotional code tsj8ia. If you are interested in purchasing the full book get it here. Offer only valid at

Scala for the Impatient

by Cay Horstmann

Scala is reaching a tipping point, as thousands of Java and other object-oriented programmers hear about its potential and seek to discover this breakthrough functional programming language for themselves. Until now, most treatments of Scala have been abstract and academic. Now, Cay Horstmann does for Scala what he did for Java in his global best-seller Core Java: he offers a rapid, code-based introduction that's relentlessly practical and 100% useful. Every concept and technique in Scala for the Impatient is presented in "blog-size" chunks that can be digested quickly and reviewed as needed for specific tasks. Horstmann offers hands-on activities that guide readers through four well-defined stages of competency:

  • Basic Scala: REPL, basic syntax, control structures, functions, arrays, maps, tuples, classes, objects, and inheritance
  • Intermediate Scala: higher-order functions, collections, case classes, Option, exception handling, traits, and the Scala type hierarchy
  • Advanced Scala: nested classes, packages, and modules; generic types; lazy data structures; existential types; structural typing; and more
  • Expert Scala: object equality, monads, higher-kinded types, implicit definitions, annotations, delimited continuations, and techniques for DSL construction
  • The free PDF includes a subset of the book (Chapters 1-11, 139 pages) suitable for a beginning application developer (or the A1 Scala Level, if you prefer). If you are interested in purchasing the full book get it here.

  • Scala in Depth

    by Joshua D. Suereth

    Scala in Depth, by Typesafe technical staff member Josh Suereth, is a unique new book designed to help you integrate Scala effectively into your development process. By presenting the emerging best practices and designs from the Scala community, it guides you through dozens of powerful techniques example by example.

    Scala is a powerful JVM language that blends the functional and OO programming models. You'll have no trouble getting introductions to Scala in books or online, but it's hard to find great examples and insights from experienced practitioners. You'll find them in Scala in Depth. There's little heavy-handed theory here—just dozens of crisp, practical techniques for coding in Scala. Written for readers who know Java, Scala, or another OO language.

    What's inside:

    • Concise, expressive, and readable code style
    • Integrate Scala into your existing Java projects
    • Scala's 2.8.0 collections API
    • How to use actors for concurrent programming
    • Mastering the Scala type system Scala's OO features—type member inheritance, multiple inheritance, and composition
    • Functional concepts and patterns—immutability, applicative functors, and monads

    The free sample PDF available here includes a subset of the book (Chapters 1-2 & 9, 51 pages). All registrants qualify for the Typesafe discount and will save 40% on the full book "Scala in Depth" by referencing promotional code akkawb . If you are interested in purchasing the full book get it here. Offer only valid at