Combine the incredible powers of Spark, Mesos, Akka, Cassandra, and Kafka to build data processing platforms that can take on even the hardest of your data troubles!
* This highly practical guide shows you how to use the best of the big data technologies to solve your response-critical problems
* Learn the art of making cheap-yet-effective big data architecture without using complex Greek-letter architectures
* Use this easy-to-follow guide to build more » fast data processing systems for your organization
SMACK is an open source full stack for big data architecture. It is a combination of Spark, Mesos, Akka, Cassandra, and Kafka. This stack is the newest technique to tackle critical real-time analytics for big data. This highly practical guide will teach you how to integrate these technologies to create a highly efficient data analysis system for fast data processing.
We'll start off with an introduction to SMACK and show you when to use it. First you'll get to grips with functional thinking and problem solving using Scala. Next you'll come to understand the Akka architecture. Then you'll get to know how to improve the data structure architecture and optimize resources using Apache Spark.
Moving forward, you'll learn how to perform linear scalability in databases with Apache Cassandra. You'll grasp the high throughput distributed messaging systems using Apache Kafka. We'll show you how to build a cheap but effective cluster infrastructure with Apache Mesos. Finally, you will deep dive into the different aspects of SMACK and you'll get the chance to practice these aspects of SMACK through a few study cases.
By the end of the book, you will be able to integrate all the components of the SMACK stack and use them together to achieve highly effective and fast data processing.
You will start off with introduction to SMACK and when to use the same. In the later chapters you will be deep diving into the different aspects of SMACK. You will be starting with functional thinking and problem solving using Scala. You will understand Akka architecture. You will know how to improve the architecture and optimize resources using Apache Spark. You will learn how to make linear scalability in Databases with Apache Cassandra. You will understand the high throughput distributed messaging systems using Apache Kafka. You will learn how to build a cheap but effective cluster infrastructure with Apache Mesos. You will be able to practice these aspects of SMACk with few study cases.
By the end of the book you will be able to integrate all the components of the SMACK stack and use them together for highly effective and fast data processing.
WHAT YOU WILL LEARN
* Build an affordable yet powerful cluster infrastructure
* Make queries, reports, and graphs based on your business' demands
* Manage and exploit unstructured and No-SQL data sources
* Use tools to monitor the performance of your architecture
* Integrate all the technology to decide which one is better than the other in replacing or reinforcing « less
Reactive Design Patterns is a clearly written guide for building message-driven distributed systems that are resilient, responsive, and elastic. In this book you'll find patterns for messaging, flow control, resource management, and concurrency, along with practical issues like test-friendly more » designs. All patterns include concrete examples using Scala and Akka. Foreword by Jonas Bonér.
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
About the Technology
Modern web applications serve potentially vast numbers of users - and they need to keep working as servers fail and new ones come online, users overwhelm limited resources, and information is distributed globally. A Reactive application adjusts to partial failures and varying loads, remaining responsive in an ever-changing distributed environment. The secret is message-driven architecture - and design patterns to organize it.
About the Book
Reactive Design Patterns presents the principles, patterns, and best practices of Reactive application design. You'll learn how to keep one slow component from bogging down others with the Circuit Breaker pattern, how to shepherd a many-staged transaction to completion with the Saga pattern, how to divide datasets by Sharding, and more. You'll even see how to keep your source code readable and the system testable despite many potential interactions and points of failure.
* The definitive guide to the Reactive Manifesto
* Patterns for flow control, delimited consistency, fault tolerance, and much more
* Hard-won lessons about what doesn't work
* Architectures that scale under tremendous load
About the Reader
Most examples use Scala, Java, and Akka. Readers should be familiar with distributed systems.
About the Author
Dr. Roland Kuhn led the Akka team at Lightbend and coauthored the Reactive Manifesto. Brian Hanafee and Jamie Allen are experienced distributed systems architects.
Table of Contents
1. PART 1 - INTRODUCTION
2. Why Reactive?
3. A walk-through of the Reactive Manifesto
4. Tools of the trade
5. PART 2 - THE PHILOSOPHY IN A NUTSHELL
6. Message passing
7. Location transparency
8. Divide and conquer
9. Principled failure handling
10. Delimited consistency
11. Nondeterminism by need
12. Message flow
13. PART 3 - PATTERNS
14. Testing reactive applications
15. Fault tolerance and recovery patterns
16. Replication patterns
17. Resource-management patterns
18. Message flow patterns
19. Flow control patterns
20. State management and persistence patterns « less
Akka in Action is a comprehensive tutorial on building message-oriented systems using Akka. The book takes a hands-on approach, where each new concept is followed by an example that shows you how it works, how to implement the code, and how to (unit) test it.
About the Technology
Akka more » makes it relatively easy to build applications in the cloud or on devices with many cores that efficiently use the full capacity of the computing power available. It's a toolkit that provides an actor programming model, a runtime, and required support tools for building scalable applications.
About the Book
Akka in Action shows you how to build message-oriented systems with Akka. This comprehensive, hands-on tutorial introduces each concept with a working example. You'll start with the big picture of how Akka works, and then quickly build and deploy a fully functional REST service out of actors. You'll explore test-driven development and deploying and scaling fault-tolerant systems. After mastering the basics, you'll discover how to model immutable messages, implement domain models, and apply techniques like event sourcing and CQRS. You'l also find a tutorial on building streaming applications using akka-stream and akka-http. Finally, you'l get practical advice on how to customize and extend your Akka system.
* Getting concurrency right
* Testing and performance tuning
* Clustered and cloud-based applications
* Covers Akka version 2.4
About the Reader
This book assumes that you're comfortable with Java and Scala. No prior experience with Akka required.
About the Authors
A software craftsman and architect, Raymond Roestenburg is an Akka committer. Rob Bakker specializes in concurrent back-end systems and systems integration. Rob Williams has more than 20 years of product development experience.
Table of Contents
1. Introducing Akka
2. Up and running
3. Test-driven development with actors
4. Fault tolerance
6. Your first distributed Akka app
7. Configuration, logging, and deployment
8. Structural patterns for actors
9. Routing messages
10. Message channels
11. Finite-state machines and agents
12. System integration
15. Actor persistence
16. Performance tips
17. Looking ahead « less
A Hands-On Guide to Designing Distributed Applications
There are many resources for Java and Scala developers who want to learn Akka from a technological perspective, but knowing how to apply this technology requires a different way of thinking. This practical, hands-on guide provides several sophisticated design patterns for using Akka properly, and includes more » examples of how and when to apply those patterns to real-world problem solving in large distributed systems. « less
* Craft a completely reactive functional application from front end to back end
* Step-by-step instructions, examples, and hands-on practices designed to help you learn the key secrets and intricacies of Scala app development
* Comprehensive coverage of all the most popular tools in the more » Scala ecosystem
Scala is known for incorporating both object-oriented and functional programming into a concise and extremely powerful package. However, creating an app in Scala can get a little tricky because of the complexity. This book will help you dive straight into app development by creating a real, reactive, and functional application. We will provide you with practical examples and instructions using a hands-on approach that will give you a firm grounding in reactive functional principles.
The book will take you through all the fundamentals of app development within Scala as you build an application piece by piece. We've made sure to incorporate everything you need from setting up to building reports and scaling architecture. This book also covers the most useful tools available in the Scala ecosystem, such as Slick, Play, and Akka, and a whole lot more. It will help you unlock the secrets of building your own up-to-date Scala application while maximizing performance and scalability.
WHAT YOU WILL LEARN
* Use Akka to create a chat service for your app
* Equip yourself with the techniques and tools to build reports and build database persistence with Scala and Slick
* Develop a customer-facing Rest API that makes use of Scala and Spray
* Make use of the Scala web development principles and scale up the architecture of your application
* Get familiar with the core principles and concepts of Functional Programming
* Use the Play framework to create models, controllers, and views
* Develop reactive backing frameworks by writing code with RxScala
* Discover what proper testing entails with Scala using behavior-driven development « less
Covers Play, Akka, and Reactive Streams
Reactive applications build on top of components that communicate asynchronously as they react to user and system events. As a result, they become scalable, responsive, and fault-tolerant. Java and Scala developers can use the Play Framework and the Akka concurrency toolkit to easily implement reactive more » applications without building everything from scratch.
Reactive Web Applications teaches web developers how to benefit from the reactive application architecture and presents hands-on examples using Play, Akka, Scala, and Reactive Streams. This book starts by laying out the fundamentals required for writing functional and asynchronous applications and quickly introduces Play as a framework to handle the plumbing of your application. The book alternates between chapters that introduce reactive ideas (asynchronous programming with futures and actors, managing distributed state with CQRS) and practical examples that show you how to build these ideas into your applications. « less
Patterns and Best Practices
Avoid common mistakes when building distributed, asynchronous, high-performance software with the Akka toolkit and runtime. With this concise guide, author Jamie Allen provides a collection of best practices based on several years of using the actor model. The book also includes examples of actor application more » types and two primary patterns of actor usage, the Extra Pattern and Cameo Pattern.
Allen, the Director of Consulting for Typesafe-creator of Akka and the Scala programming language-examines actors with a banking-service use case throughout the book, using examples shown in Akka and Scala. If you have any experience with Akka, this guide is essential. « less