Advertisement
akka http book: Mastering Akka Christian Baxter, 2016-10-21 Master the art of creating scalable, concurrent, and reactive applications using Akka About This Book This book will help you cure anemic models with domain-driven design We cover major Akka programming concepts such as concurrency, scalability, and reactivity You will learn concepts like Event Sourcing and CQRS via Akka Persistence, Akka Streams, Akka Http as well as Akka Clustering Who This Book Is For If you want to use the Lightbend platform to create highly performant reactive applications, then this book is for you. If you are a Scala developer looking for techniques to use all features of the new Akka release and want to incorporate these solutions in your current or new projects, then this book is for you. Expert Java developers who want to build scalable, concurrent, and reactive application will find this book helpful. What You Will Learn Use Akka actors to enable parallel execution Build out domain-driven design based components like entities and aggregates Respond to command requests on that aggregate root that affect the internal state Leverage Akka Persistence, protobuf and Cassandra to save the persistent state of you entities Build out complex processing graphs with the Graph Builder DSL Understand the dynamic push/pull nature of backpressure handling within Akka Streams Route HTTP requests to an actor and return a response Deploy actor instances across a set of nodes via ConductR for high availability In Detail For a programmer, writing multi-threaded applications is critical as it is important to break large tasks into smaller ones and run them simultaneously. Akka is a distributed computing toolkit that uses the abstraction of the Actor model, enabling developers to build correct, concurrent, and distributed applications using Java and Scala with ease. The book begins with a quick introduction that simplifies concurrent programming with actors. We then proceed to master all aspects of domain-driven design. We'll teach you how to scale out with Akka Remoting/Clustering. Finally, we introduce Conductr as a means to deploy to and manage microservices across a cluster. Style and approach This comprehensive, fast-paced guide is packed with several real-world use cases that will help you understand concepts, issues, and resolutions while using Akka to create highly performant, scalable, and concurrency-proof reactive applications. |
akka http book: Akka in Action Raymond Roestenburg, Rob Bakker, Rob Williams, 2016-09-30 Summary 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. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology Akka 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. What's Inside 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 Introducing Akka Up and running Test-driven development with actors Fault tolerance Futures Your first distributed Akka app Configuration, logging, and deployment Structural patterns for actors Routing messages Message channels Finite-state machines and agents System integration Streaming Clustering Actor persistence Performance tips Looking ahead |
akka http book: Reactive Web Applications Manuel Bernhardt, 2016-06-27 Summary Reactive Web Applications teaches web developers how to benefit from the reactive application architecture and presents hands-on examples using the Play framework. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology 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 applications without building everything from scratch. About the Book 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. What's Inside Reactive application architecture Basics of Play and Akka Examples in Scala Functional and asynchronous programming About Reader Description For readers comfortable programming with a higher-level language such as Java or C#, and who can read Scala code. No experience with Play or Akka needed. About the Author Manuel Bernhardt is a passionate engineer, author, and speaker. As a consultant, he guides companies through the technological and organizational transformation to distributed computing. Table of Contents PART 1 GETTING STARTED WITH REACTIVE WEB APPLICATIONS Did you say reactive? Your first reactive web application Functional programming primer Quick introduction to Play PART 2 CORE CONCEPTS Futures Actors Dealing with state Responsive user interfaces PART 3 ADVANCED TOPICS Reactive Streams Deploying reactive Play applications Testing reactive web applications |
akka http book: Reactive Streams in Java Adam L. Davis, 2018-11-29 Get an easy introduction to reactive streams in Java to handle concurrency, data streams, and the propagation of change in today's applications. This compact book includes in-depth introductions to RxJava, Akka Streams, and Reactor, and integrates the latest related features from Java 9 and 11, as well as reactive streams programming with the Android SDK. Reactive Streams in Java explains how to manage the exchange of stream data across an asynchronous boundary—passing elements on to another thread or thread-pool—while ensuring that the receiving side is not forced to buffer arbitrary amounts of data which can reduce application efficiency. After reading and using this book, you'll be proficient in programming reactive streams for Java in order to optimize application performance, and improve memory management and data exchanges. What You Will Learn Discover reactive streamsand how to use them Work with the latest features in Java 9 and Java 11 Apply reactive streams using RxJava Program using Akka Streams Carry out reactive streams programming in Android Who This Book Is For Experienced Java programmers. |
akka http book: Akka Cookbook Hector Veiga Ortiz, Piyush Mishra, 2017-05-26 Learn how to use the Akka framework to build effective applications in Scala About This Book Covers a discussion on Lagom—the newest launched Akka framework that is built to create complex microservices easily The recipe approach of the book allows the reader to know important and independent concepts of Scala and Akka in a seamless manner Provides a comprehensive understanding of the Akka actor model and implementing it to create reactive web applications Who This Book Is For If you are a Scala developer who wants to build scalable and concurrent applications, then this book is for you. Basic knowledge of Akka will help you take advantage of this book. What You Will Learn Control an actor using the ContolAware mailbox Test a fault-tolerant application using the Akka test kit Create a parallel application using futures and agents Package and deploy Akka application inside Docker Deploy remote actors programmatically on different nodes Integrate Streams with Akka actors Install Lagom and create a Lagom project In Detail Akka is an open source toolkit that simplifies the construction of distributed and concurrent applications on the JVM. This book will teach you how to develop reactive applications in Scala using the Akka framework. This book will show you how to build concurrent, scalable, and reactive applications in Akka. You will see how to create high performance applications, extend applications, build microservices with Lagom, and more. We will explore Akka's actor model and show you how to incorporate concurrency into your applications. The book puts a special emphasis on performance improvement and how to make an application available for users. We also make a special mention of message routing and construction. By the end of this book, you will be able to create a high-performing Scala application using the Akka framework. Style and approach This highly practical recipe-based approach will allow you to build scalable, robust, and reactive applications using the Akka framework. |
akka http book: Pure functional HTTP APIs in Scala Jens Grassel, 2021-04-14 This book is intended for the intermediate Scala programmer who is interested in functional programming and works mainly on the web service backend side. Ideally she has experience with libraries like Akka HTTP and Slick which are in heavy use in that area. However maybe you have wondered if we can't do better even though aforementioned projects are battle tested and proven. The answer to this can be found in this book which is intended to be read from cover to cover in the given order. Within the book the following libraries will be used: Cats, Cats Effect, http4s, Doobie, Refined, fs2, tapir, Monocle and probably others. ;-) This edition includes a chapter about migrating the project to Scala 3. Which includes all the nasty issues that we tend to run into if we touch code after a longer time. Code and book source can be found in the author's github account. |
akka http book: Applied Akka Patterns Michael Nash, Wade Waldron, 2016-12-12 When it comes to big data processing, we can no longer ignore concurrency or try to add it in after the fact. Fortunately, the solution is not a new paradigm of development, but rather an old one. With this hands-on guide, Java and Scala developers will learn how to embrace concurrent and distributed applications with the open source Akka toolkit. You’ll learn how to put the actor model and its associated patterns to immediate and practical use. Throughout the book, you’ll deal with an analogous workforce problem: how to schedule a group of people across a variety of projects while optimizing their time and skillsets. This example will help you understand how Akka uses actors, streams, and other tools to stitch your application together. Model software that reflects the real world with domain-driven design Learn principles and practices for implementing individual actors Unlock the real potential of Akka with patterns for combining multiple actors Understand the consistency tradeoffs in a distributed system Use several Akka methods for isolating and dealing with failures Explore ways to build systems that support availability and scalability Tune your Akka application for performance with JVM tools and dispatchers |
akka http book: Akka Essentials Munish K. Gupta, 2012 This is a step-by-step guide where each chapter will teach you a concept by explaining it with clear and lucid examples– each chapter can be read independently. This book is aimed at developers, architects who are building large distributed concurrent and scalable applications using Java/Scala. The book assumes knowledge of Java/JEE concepts but no knowledge of Actor model is assumed. |
akka http book: Scala Reactive Programming Rambabu Posa, 2018-02-28 Build fault-tolerant, robust, and distributed applications in Scala Key Features - Understand and use the concepts of reactive programming to build distributed systems running on multiple nodes. - Learn how reactive architecture reduces complexity throughout the development process. - Get to grips with functional reactive programming and Reactive Microservices. Book Description Reactive programming is a scalable, fast way to build applications, and one that helps us write code that is concise, clear, and readable. It can be used for many purposes such as GUIs, robotics, music, and others, and is central to many concurrent systems. This book will be your guide to getting started with Reactive programming in Scala. You will begin with the fundamental concepts of Reactive programming and gradually move on to working with asynchronous data streams. You will then start building an application using Akka Actors and extend it using the Play framework. You will also learn about reactive stream specifications, event sourcing techniques, and different methods to integrate Akka Streams into the Play Framework. This book will also take you one step forward by showing you the advantages of the Lagom framework while working with reactive microservices. You will also learn to scale applications using multi-node clusters and test, secure, and deploy your microservices to the cloud. By the end of the book, you will have gained the knowledge to build robust and distributed systems with Scala and Akka. What you will learn Understand the fundamental principles of Reactive and Functional programming Develop applications utilizing features of the Akka framework Explore techniques to integrate Scala, Akka, and Play together Learn about Reactive Streams with real-time use cases Develop Reactive Web Applications with Play, Scala, Akka, and Akka Streams Develop and deploy Reactive microservices using the Lagom framework and ConductR Who this book is for This book is for Scala developers who would like to build fault-tolerant, scalable distributed systems. No knowledge of Reactive programming is required. |
akka http book: Start Building Restful Microservices Using Akka HTTP with Scala: A Quick Start Guide to Building Microservices Using Akka HTTP with Scala in a One-Wee Ayush Kumar Mishra, 2017-12-31 Book Description This book is a part of Knoldus Reactive Programming Series. Few years ago, applications were much simpler and required all solutions at one place, we call them monolithic applications. Now a days markets are changing rapidly. You either adapt quickly or you go out of business. If your application is successful, you will start enhancing features day by day and as a result, your application becomes complex day by day and that complexity creates challenges in development. It will be difficult to fully understand and made changes fast and correctly. You must redeploy the entire application on each update. These type of application also has a barrier to adopting new technologies because it will affect the entire application. In this book, you will learn how you can manage this problem by dividing project into smaller pieces. You will learn how quickly you can start transforming your monolithic application into microservices. Microservice can be developed using different programming language (Personally I don't suggest to do it). I prefer Akka HTTP because it is fully integrated into Typesafe stack. Since there are already a lot of scala frameworks to build REST APIs then the obvious question is Why Akka HTTP? There are many reasons to use Akka HTTP, which you will learn in this book. I have written this book for those who want to start developing REST API right away and have a basic understanding of Scala. I don't exhaustively list all feature of Akka HTTP. I don't make you suffer through long and contrived example. I have tried to explain every topic of this book with short and easy to understand examples with test-cases.Akka HTTP is available for both Java and Scala but in this book, we will go with Scala. I choose Scala because it cuts down on boilerplate and we can concentrate on the logic of our problems. In Scala, you are not limited to just object-oriented patterns to implement your code, you can bring in functional paradigms as well. What You'll Learn Advantage of using Microservices architecture over monolithic Introduction to Akka HTTP Start coding in Akka HTTP Powerful JSON (un)marshalling support How to build server-side API How to build client-side API WebSocket support using Akka HTTP By the end of the book, you will get the links of multiple sample projects of Akka HTTP. For ex.:Akka HTTP with SOLRAkka HTTP with SlickAkka HTTP with Neo4J You will also get templates with frameworks like Angular.js, Spark Et al. You can clone these sample projects according to your requirement and start playing with restful web services. Who This Book Is For Those who want to start working on microservices architecture right away. The only pre-requisite to this book is that you are comfortable with Scala. However language is not a bar, even if you want to develop java microservices using Akka HTTP, you can still read this book to understand the concept. I have used the latest version of Akka HTTP in this book. About The Author Ayush Kumar Mishra is a Lead Scala Consultant based in Singapore. He is currently working with Knoldus, an organization where knowledge sharing and upskilling each Knolder is a way of life, which is the only organization to be partners with Lightbend, Databricks, Confluent and Datastax to deliver high-quality reactive products to its global clients. He has been working in Scala for more than 5 years. He loves to troubleshoot complex problems and look for the best solutions. In his career, he has successfully developed and delivered various microservice based systems with Scala and Akka HTTP. When he is not programming, he writes technical blogs. Most of his blogs are related to rest api design. He has also transformed some monolithic systems into microservice based system. |
akka http book: Get Programming with Scala Daniela Sfregola, 2021-10-05 The perfect starting point for your journey into Scala and functional programming. Summary In Get Programming in Scala you will learn: Object-oriented principles in Scala Express program designs in functions Use types to enforce program requirements Use abstractions to avoid code duplication Write meaningful tests and recognize code smells Scala is a multi-style programming language for the JVM that supports both object-oriented and functional programming. Master Scala, and you'll be well-equipped to match your programming approach to the type of problem you're dealing with. Packed with examples and exercises, Get Programming with Scala is the perfect starting point for developers with some OO knowledge who want to learn Scala and pick up a few FP skills along the way. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the technology Scala developers are in high demand. This flexible language blends object-oriented and functional programming styles so you can write flexible, easy-to-maintain code. Because Scala runs on the JVM, your programs can interact seamlessly with Java libraries and tools. If you’re comfortable writing Java, this easy-to-read book will get you programming with Scala fast. About the book Get Programming with Scala is a fast-paced introduction to the Scala language, covering both Scala 2 and Scala 3. You’ll learn through lessons, quizzes, and hands-on projects that bring your new skills to life. Clear explanations make Scala’s features and abstractions easy to understand. As you go, you’ll learn to write familiar object-oriented code in Scala and also discover the possibilities of functional programming. What's inside Apply object-oriented principles in Scala Learn the core concepts of functional programming Use types to enforce program requirements Use abstractions to avoid code duplication Write meaningful tests and recognize code smells About the reader For developers who know an OOP language like Java, Python, or C#. No experience with Scala or functional programming required. About the author Daniela Sfregola is a Senior Software Engineer and a Scala user since 2013. She is an active contributor to the Scala Community, a public speaker at Scala conferences and meetups, and a maintainer of open-source projects. Table of Contents Unit 0 HELLO SCALA! Unit 1 THE BASICS Unit 2 OBJECT-ORIENTED FUNDAMENTALS Unit 3 HTTP SERVER Unit 4 IMMUTABLE DATA AND STRUCTURES Unit 5 LIST Unit 6 OTHER COLLECTIONS AND ERROR HANDLING Unit 7 CONCURRENCY Unit 8 JSON (DE)SERIALIZATION |
akka http book: Reactive Applications with Akka.NET Anthony Brown, 2019-03-05 Summary Reactive Applications with Akka.NET is a hands-on book that builds on fundamental concepts to teach you how to create reliable and resilient applications in the reactive style. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology Enterprise-scale software needs to be unfailingly reliable, consistently performant under unpredictable loads, and easy to scale and maintain. Reactive applications guarantee these qualities through clear isolation of system components and message-based communication. Akka.NET ports the battle-tested Akka Actors toolkit from the JVM, radically simplifying the concurrency and asynchronous message handling at the heart of a reactive system. About the Book Reactive Applications with Akka.NET teaches you to write high-performance, concurrent systems without explicitly managing threads and locking. You'll experience the power of Akka.NET and the Actors concurrency model by exploring a real-world case study in each chapter. As you go further, you'll start to grok the power of asynchronous communication in a distributed environment and take on practical tasks like deploying, debugging, and establishing performance guarantees. What's Inside Reactive application design Dealing with application-level failures Integrating Akka.NET with other frameworks Applying reactive programming to the real world About the Reader Readers should be comfortable with C# or F# and the .NET framework. About the Author Anthony Brown is a .NET consultant specializing in F# and reactive systems. Table of Contents PART 1 THE ROAD TO REACTIVE Why reactive? Reactive application design PART 2 DIGGING IN Your first Akka.NET application State, behavior, and actors Configuration, dependency injection, and logging Failure handling Scaling in reactive systems Composing actor systems PART 3 REAL-LIFE USAGE Testing Akka.NET actors Integrating Akka.NET Storing actor state with Akka.Persistence Building clustered applications with Akka.Cluster Akka.NET and reactive programming in production |
akka http book: Learning Akka Jason Goodwin, 2015 Build fault tolerant concurrent and distributed applications with AkkaAbout This Book- Build networked applications that self-heal- Scale out your applications to handle more traffic faster- An easy-to-follow guide with a number of examples to ensure you get the best start with AkkaWho This Book Is ForThis book is intended for beginner to intermediate Java or Scala developers who want to build applications to serve the high-scale user demands in computing today. If you need your applications to handle the ever-growing user bases and datasets with high performance demands, then this book is for you. Learning Akka will let you do more for your users with less code and less complexity, by building and scaling your networked applications with ease.What You Will Learn- Use Akka to overcome the challenges of concurrent programming- Resolve the issues faced in distributed computing with the help of Akka- Scale applications to serve a high number of concurrent users- Make your system fault-tolerant with self-healing applications- Provide a timely response to users with easy concurrency- Reduce hardware costs by building more efficient multi-user applications- Maximise network efficiency by scaling itIn DetailSoftware today has to work with more data, more users, more cores, and more servers than ever. Akka is a distributed computing toolkit that enables developers to build correct concurrent and distributed applications using Java and Scala with ease, applications that scale across servers and respond to failure by self-healing. As well as simplifying development, Akka enables multiple concurrency development patterns with particular support and architecture derived from Erlang's concept of actors (lightweight concurrent entities). Akka is written in Scala, which has become the programming language of choice for development on the Akka platform.Learning Akka aims to be a comprehensive walkthrough of Akka. This book will take you on a journey through all the concepts of Akka that you need in order to get started with concurrent and distributed applications and even build your own.Beginning with the concept of Actors, the book will take you through concurrency in Akka. Moving on to networked applications, this book will explain the common pitfalls in these difficult problem areas while teaching you how to use Akka to overcome these problems with ease.The book is an easy to follow example-based guide that will strengthen your basic knowledge of Akka and aid you in applying the same to real-world scenarios.Style and approachAn easy-to-follow, example-based guide that will take you through building several networked-applications that work together while you are learning concurrent and distributed computing concepts. Each topic is explained while showing you how to design with Akka and how it is used to overcome common problems in applications. By showing Akka in context to the problems, it will help you understand what the common problems are in distributed applications and how to overcome them. |
akka http book: Programming Scala Dean Wampler, Alex Payne, 2014-12-04 Get up to speed on Scala, the JVM language that offers all the benefits of a modern object model, functional programming, and an advanced type system. Packed with code examples, this comprehensive book shows you how to be productive with the language and ecosystem right away, and explains why Scala is ideal for today's highly scalable, data-centric applications that support concurrency and distribution. This second edition covers recent language features, with new chapters on pattern matching, comprehensions, and advanced functional programming. You’ll also learn about Scala’s command-line tools, third-party tools, libraries, and language-aware plugins for editors and IDEs. This book is ideal for beginning and advanced Scala developers alike. Program faster with Scala’s succinct and flexible syntax Dive into basic and advanced functional programming (FP) techniques Build killer big-data apps, using Scala’s functional combinators Use traits for mixin composition and pattern matching for data extraction Learn the sophisticated type system that combines FP and object-oriented programming concepts Explore Scala-specific concurrency tools, including Akka Understand how to develop rich domain-specific languages Learn good design techniques for building scalable and robust Scala applications |
akka http book: Big Data SMACK Raul Estrada, Isaac Ruiz, 2016-09-29 Learn how to integrate full-stack open source big data architecture and to choose the correct technology—Scala/Spark, Mesos, Akka, Cassandra, and Kafka—in every layer. Big data architecture is becoming a requirement for many different enterprises. So far, however, the focus has largely been on collecting, aggregating, and crunching large data sets in a timely manner. In many cases now, organizations need more than one paradigm to perform efficient analyses. Big Data SMACK explains each of the full-stack technologies and, more importantly, how to best integrate them. It provides detailed coverage of the practical benefits of these technologies and incorporates real-world examples in every situation. This book focuses on the problems and scenarios solved by the architecture, as well as the solutions provided by every technology. It covers the six main concepts of big data architecture and how integrate, replace, and reinforce every layer: The language: Scala The engine: Spark (SQL, MLib, Streaming, GraphX) The container: Mesos, Docker The view: Akka The storage: Cassandra The message broker: Kafka What You Will Learn: Make big data architecture without using complex Greek letter architectures Build a cheap but effective cluster infrastructure Make queries, reports, and graphs that business demands Manage and exploit unstructured and No-SQL data sources Use tools to monitor the performance of your architecture Integrate all technologies and decide which ones replace and which ones reinforce Who This Book Is For: Developers, data architects, and data scientists looking to integrate the most successful big data open stack architecture and to choose the correct technology in every layer |
akka http book: Hands-on Scala Programming: Learn Scala in a Practical, Project-Based Way Haoyi Li, 2020-07-11 Hands-on Scala teaches you how to use the Scala programming language in a practical, project-based fashion. This book is designed to quickly teach an existing programmer everything needed to go from hello world to building production applications like interactive websites, parallel web crawlers, and distributed systems in Scala. In the process you will learn how to use the Scala language to solve challenging problems in an elegant and intuitive manner. |
akka http book: A Beginner's Guide to Scala, Object Orientation and Functional Programming John Hunt, 2018-03-02 Scala is now an established programming language developed by Martin Oderskey and his team at the EPFL. The name Scala is derived from Sca(lable) La(nguage). Scala is a multi-paradigm language, incorporating object oriented approaches with functional programming. Although some familiarity with standard computing concepts is assumed (such as the idea of compiling a program and executing this compiled from etc.) and with basic procedural language concepts (such as variables and allocation of values to these variables) the early chapters of the book do not assume any familiarity with object orientation nor with functional programming These chapters also step through other concepts with which the reader may not be familiar (such as list processing). From this background, the book provides a practical introduction to both object and functional approaches using Scala. These concepts are introduced through practical experience taking the reader beyond the level of the language syntax to the philosophy and practice of object oriented development and functional programming. Students and those actively involved in the software industry will find this comprehensive introduction to Scala invaluable. |
akka http book: Machine Learning Systems Jeffrey Smith, 2018-05-21 Summary Machine Learning Systems: Designs that scale is an example-rich guide that teaches you how to implement reactive design solutions in your machine learning systems to make them as reliable as a well-built web app. Foreword by Sean Owen, Director of Data Science, Cloudera Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology If you’re building machine learning models to be used on a small scale, you don't need this book. But if you're a developer building a production-grade ML application that needs quick response times, reliability, and good user experience, this is the book for you. It collects principles and practices of machine learning systems that are dramatically easier to run and maintain, and that are reliably better for users. About the Book Machine Learning Systems: Designs that scale teaches you to design and implement production-ready ML systems. You'll learn the principles of reactive design as you build pipelines with Spark, create highly scalable services with Akka, and use powerful machine learning libraries like MLib on massive datasets. The examples use the Scala language, but the same ideas and tools work in Java, as well. What's Inside Working with Spark, MLlib, and Akka Reactive design patterns Monitoring and maintaining a large-scale system Futures, actors, and supervision About the Reader Readers need intermediate skills in Java or Scala. No prior machine learning experience is assumed. About the Author Jeff Smith builds powerful machine learning systems. For the past decade, he has been working on building data science applications, teams, and companies as part of various teams in New York, San Francisco, and Hong Kong. He blogs (https: //medium.com/@jeffksmithjr), tweets (@jeffksmithjr), and speaks (www.jeffsmith.tech/speaking) about various aspects of building real-world machine learning systems. Table of Contents PART 1 - FUNDAMENTALS OF REACTIVE MACHINE LEARNING Learning reactive machine learning Using reactive tools PART 2 - BUILDING A REACTIVE MACHINE LEARNING SYSTEM Collecting data Generating features Learning models Evaluating models Publishing models Responding PART 3 - OPERATING A MACHINE LEARNING SYSTEM Delivering Evolving intelligence |
akka http book: Effective Akka Jamie Allen, 2013-08-15 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 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. Delve into domain-driven and work-distribution actor applications Understand why it’s important to have actors do only one job Avoid thread blocking by allowing logic to be delegated to a Future Model interactions as simply as possible to avoid premature optimization Create well-defined interactions, and know exactly what failures can occur Learn why you should never treat actors as you would an ordinary class Keep track of what goes on in production by monitoring everything Tune Akka applications with the Typesafe Console |
akka http book: Play for Scala Peter Hilton, Erik Bakker, Francisco Canedo, 2013-10-14 Summary Play for Scala shows you how to build Scala-based web applications using the Play 2 framework. This book starts by introducing Play through a comprehensive overview example. Then, you'll look at each facet of a typical Play application both by exploring simple code snippets and by adding to a larger running example. Along the way, you'll deepen your knowledge of Scala as a programming language and work with tools like Akka. About this Book Play is a Scala web framework with built-in advantages: Scala's strong type system helps deliver bug-free code, and the Akka framework helps achieve hassle-free concurrency and peak performance. Play builds on the web's stateless nature for excellent scalability, and because it is event-based and nonblocking, you'll find it to be great for near real-time applications. Play for Scala teaches you to build Scala-based web applications using Play 2. It gets you going with a comprehensive overview example. It then explores each facet of a typical Play application by walking through sample code snippets and adding features to a running example. Along the way, you'll deepen your knowledge of Scala and learn to work with tools like Akka. Written for readers familiar with Scala and web-based application architectures. No knowledge of Play is assumed. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. What's Inside Intro to Play 2 Play's MVC structure Mastering Scala templates and forms Persisting data and using web services Using Play's advanced features About the Authors Peter Hiltonv, Erik Bakker, and Francisco Canedo, are engineers at Lunatech, a consultancy with Scala and Play expertise. They are contributors to the Play framework. Table of Contents PART 1: GETTING STARTED Introduction to Play Your first Play application PART 2: CORE FUNCTIONALITY Deconstructing Play application architecture Defining the application's HTTP interface Storing data—the persistence layer Building a user interface with view templates Validating and processing input with the forms API PART 3: ADVANCED CONCEPTS Building a single-page JavaScript application with JSON Play and more Web services, iteratees, and WebSockets |
akka http book: Microservices for the Enterprise Kasun Indrasiri, Prabath Siriwardena, 2018-11-14 Understand the key challenges and solutions around building microservices in the enterprise application environment. This book provides a comprehensive understanding of microservices architectural principles and how to use microservices in real-world scenarios. Architectural challenges using microservices with service integration and API management are presented and you learn how to eliminate the use of centralized integration products such as the enterprise service bus (ESB) through the use of composite/integration microservices. Concepts in the book are supported with use cases, and emphasis is put on the reality that most of you are implementing in a “brownfield” environment in which you must implement microservices alongside legacy applications with minimal disruption to your business. Microservices for the Enterprise covers state-of-the-art techniques around microservices messaging, service development and description, service discovery, governance, and data management technologies and guides you through the microservices design process. Also included is the importance of organizing services as core versus atomic, composite versus integration, and API versus edge, and how such organization helps to eliminate the use of a central ESB and expose services through an API gateway. What You'll Learn Design and develop microservices architectures with confidence Put into practice the most modern techniques around messaging technologies Apply the Service Mesh pattern to overcome inter-service communication challenges Apply battle-tested microservices security patterns to address real-world scenarios Handle API management, decentralized data management, and observability Who This Book Is For Developers and DevOps engineers responsible for implementing applications around a microservices architecture, and architects and analysts who are designing such systems |
akka http book: Scala for Data Science Pascal Bugnion, 2016-01-28 Leverage the power of Scala with different tools to build scalable, robust data science applications About This Book A complete guide for scalable data science solutions, from data ingestion to data visualization Deploy horizontally scalable data processing pipelines and take advantage of web frameworks to build engaging visualizations Build functional, type-safe routines to interact with relational and NoSQL databases with the help of tutorials and examples provided Who This Book Is For If you are a Scala developer or data scientist, or if you want to enter the field of data science, then this book will give you all the tools you need to implement data science solutions. What You Will Learn Transform and filter tabular data to extract features for machine learning Implement your own algorithms or take advantage of MLLib's extensive suite of models to build distributed machine learning pipelines Read, transform, and write data to both SQL and NoSQL databases in a functional manner Write robust routines to query web APIs Read data from web APIs such as the GitHub or Twitter API Use Scala to interact with MongoDB, which offers high performance and helps to store large data sets with uncertain query requirements Create Scala web applications that couple with JavaScript libraries such as D3 to create compelling interactive visualizations Deploy scalable parallel applications using Apache Spark, loading data from HDFS or Hive In Detail Scala is a multi-paradigm programming language (it supports both object-oriented and functional programming) and scripting language used to build applications for the JVM. Languages such as R, Python, Java, and so on are mostly used for data science. It is particularly good at analyzing large sets of data without any significant impact on performance and thus Scala is being adopted by many developers and data scientists. Data scientists might be aware that building applications that are truly scalable is hard. Scala, with its powerful functional libraries for interacting with databases and building scalable frameworks will give you the tools to construct robust data pipelines. This book will introduce you to the libraries for ingesting, storing, manipulating, processing, and visualizing data in Scala. Packed with real-world examples and interesting data sets, this book will teach you to ingest data from flat files and web APIs and store it in a SQL or NoSQL database. It will show you how to design scalable architectures to process and modelling your data, starting from simple concurrency constructs such as parallel collections and futures, through to actor systems and Apache Spark. As well as Scala's emphasis on functional structures and immutability, you will learn how to use the right parallel construct for the job at hand, minimizing development time without compromising scalability. Finally, you will learn how to build beautiful interactive visualizations using web frameworks. This book gives tutorials on some of the most common Scala libraries for data science, allowing you to quickly get up to speed with building data science and data engineering solutions. Style and approach A tutorial with complete examples, this book will give you the tools to start building useful data engineering and data science solutions straightaway |
akka http book: Scala in Action Nilanjan Raychaudhuri, 2013-04-08 Summary Scala in Action is a comprehensive tutorial that introduces Scala through clear explanations and numerous hands-on examples. Because Scala is a rich and deep language, it can be daunting to absorb all the new concepts at once. This book takes a how-to approach, explaining language concepts as you explore familiar programming challenges that you face in your day-to-day work. About the Technology Scala runs on the JVM and combines object-orientation with functional programming. It's designed to produce succinct, type-safe code, which is crucial for enterprise applications. Scala implements Actor-based concurrency through the amazing Akka framework, so you can avoid Java's messy threading while interacting seamlessly with Java. About this Book Scala in Action is a comprehensive tutorial that introduces the language through clear explanations and numerous hands-on examples. It takes a how to approach, explaining language concepts as you explore familiar programming tasks. You'll tackle concurrent programming in Akka, learn to work with Scala and Spring, and learn how to build DSLs and other productivity tools. You'll learn both the language and how to use it. Experience with Java is helpful but not required. Ruby and Python programmers will also find this book accessible. What's Inside A Scala tutorial How to use Java and Scala open source libraries How to use SBT Test-driven development Debugging Updated for Scala 2.10 Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Author Nilanjan Raychaudhuri is a skilled developer, speaker, and an avid polyglot programmer who works with Scala on production systems. Table of Contents PART 1 SCALA: THE BASICS Why Scala? Getting started OOP in Scala Having fun with functional data structures Functional programming PART 2 WORKING WITH SCALA Building web applications in functional style Connecting to a database Building scalable and extensible components Concurrency programming in Scala Building confidence with testing PART 3 ADVANCED STEPS Interoperability between Scala and Java Scalable and distributed applications using Akka |
akka http book: Scala Cookbook Alvin Alexander, 2013-08 Save time and trouble when using Scala to build object-oriented, functional, and concurrent applications. With more than 250 ready-to-use recipes and 700 code examples, this comprehensive cookbook covers the most common problems you’ll encounter when using the Scala language, libraries, and tools. It’s ideal not only for experienced Scala developers, but also for programmers learning to use this JVM language. Author Alvin Alexander (creator of DevDaily.com) provides solutions based on his experience using Scala for highly scalable, component-based applications that support concurrency and distribution. Packed with real-world scenarios, this book provides recipes for: Strings, numeric types, and control structures Classes, methods, objects, traits, and packaging Functional programming in a variety of situations Collections covering Scala's wealth of classes and methods Concurrency, using the Akka Actors library Using the Scala REPL and the Simple Build Tool (SBT) Web services on both the client and server sides Interacting with SQL and NoSQL databases Best practices in Scala development |
akka http book: Introduction to the Art of Programming Using Scala Mark C. Lewis, 2012-11-05 With its flexibility for programming both small and large projects, Scala is an ideal language for teaching beginning programming. Yet there are no textbooks on Scala currently available for the CS1/CS2 levels. Introduction to the Art of Programming Using Scala presents many concepts from CS1 and CS2 using a modern, JVM-based language that works we |
akka http book: Pragmatic Scala Venkat Subramaniam, 2015 |
akka http book: Learning Scala Programming Vikash Sharma, 2018-01-30 Learn how to write scalable and concurrent programs in Scala, a language that grows with you. Key Features Get a grip on the functional features of the Scala programming language Understand and develop optimal applications using object-oriented and functional Scala constructs Learn reactive principles with Scala and work with the Akka framework Book Description Scala is a general-purpose programming language that supports both functional and object-oriented programming paradigms. Due to its concise design and versatility, Scala's applications have been extended to a wide variety of fields such as data science and cluster computing. You will learn to write highly scalable, concurrent, and testable programs to meet everyday software requirements. We will begin by understanding the language basics, syntax, core data types, literals, variables, and more. From here you will be introduced to data structures with Scala and you will learn to work with higher-order functions. Scala's powerful collections framework will help you get the best out of immutable data structures and utilize them effectively. You will then be introduced to concepts such as pattern matching, case classes, and functional programming features. From here, you will learn to work with Scala's object-oriented features. Going forward, you will learn about asynchronous and reactive programming with Scala, where you will be introduced to the Akka framework. Finally, you will learn the interoperability of Scala and Java. After reading this book, you'll be well versed with this language and its features, and you will be able to write scalable, concurrent, and reactive programs in Scala. What you will learn Get to know the reasons for choosing Scala: its use and the advantages it provides over other languages Bring together functional and object-oriented programming constructs to make a manageable application Master basic to advanced Scala constructs Test your applications using advanced testing methodologies such as TDD Select preferred language constructs from the wide variety of constructs provided by Scala Make the transition from the object-oriented paradigm to the functional programming paradigm Write clean, concise, and powerful code with a functional mindset Create concurrent, scalable, and reactive applications utilizing the advantages of Scala Who this book is for This book is for programmers who choose to get a grip over Scala to write concurrent, scalable, and reactive programs. No prior experience with any programming language is required to learn the concepts explained in this book. Knowledge of any programming language would help the reader understanding concepts faster though. |
akka http book: Reactive Application Development Duncan DeVore, Sean Walsh, Brian Hanafee, 2018-07-08 Summary Reactive Application Development is a hands-on guide that teaches you how to build reliable enterprise applications using reactive design patterns. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. Foreword by Jonas Bonér, Creator of Akka About the Technology Mission-critical applications have to respond instantly to changes in load, recover gracefully from failure, and satisfy exacting requirements for performance, cost, and reliability. That's no small task! Reactive designs make it easier to meet these demands through modular, message-driven architecture, innovative tooling, and cloud-based infrastructure. About the Book Reactive Application Development teaches you how to build reliable enterprise applications using reactive design patterns. This hands-on guide begins by exposing you to the reactive mental model, along with a survey of core technologies like the Akka actors framework. Then, you'll build a proof-of-concept system in Scala, and learn to use patterns like CQRS and Event Sourcing. You'll master the principles of reactive design as you implement elasticity and resilience, integrate with traditional architectures, and learn powerful testing techniques. What's Inside Designing elastic domain models Building fault-tolerant systems Efficiently handling large data volumes Examples can be built in Scala or Java About the Reader Written for Java or Scala programmers familiar with distributed application designs. About the Author Duncan DeVore, Sean Walsh, and Brian Hanafee are seasoned architects with experience building and deploying reactive systems in production. Table of Contents PART 1 - FUNDAMENTALS What is a reactive application? Getting started with Akka Understanding Akka PART 2 - BUILDING A REACTIVE APPLICATION Mapping from domain to toolkit Domain-driven design Using remote actors Reactive streaming CQRS and Event Sourcing A reactive interface Production readiness |
akka http book: Hands-On Reactive Programming with Reactor Rahul Sharma, 2018-09-29 Discover how project Reactor enhances the reactive programming paradigm and allows you to build scalable asynchronous applications Key FeaturesUse reactive APIs, Flux, and Mono to implement reactive extensionsCreate concurrent applications without the complexity of Java's concurrent APIUnderstand techniques to implement event-driven and reactive applicationsBook Description Reactor is an implementation of the Java 9 Reactive Streams specification, an API for asynchronous data processing. This specification is based on a reactive programming paradigm, enabling developers to build enterprise-grade, robust applications with reduced complexity and in less time. Hands-On Reactive Programming with Reactor shows you how Reactor works, as well as how to use it to develop reactive applications in Java. The book begins with the fundamentals of Reactor and the role it plays in building effective applications. You will learn how to build fully non-blocking applications and will later be guided by the Publisher and Subscriber APIs. You will gain an understanding how to use two reactive composable APIs, Flux and Mono, which are used extensively to implement Reactive Extensions. All of these components are combined using various operations to build a complete solution. In addition to this, you will get to grips with the Flow API and understand backpressure in order to control overruns. You will also study the use of Spring WebFlux, an extension of the Reactor framework for building microservices. By the end of the book, you will have gained enough confidence to build reactive and scalable microservices. What you will learnExplore benefits of the Reactive paradigm and the Reactive Streams APIDiscover the impact of Flux and Mono implications in ReactorExpand and repeat data in stream processingGet to grips with various types of processors and choose the best oneUnderstand how to map errors to make corrections easierCreate robust tests using testing utilities offered by ReactorFind the best way to schedule the execution of codeWho this book is for If you’re looking to develop event- and data-driven applications easily with Reactor, this book is for you. Sound knowledge of Java fundamentals is necessary to understand the concepts covered in the book. |
akka http book: Functional Programming in Scala Paul Chiusano, Runar Bjarnason, 2014-09-01 Summary Functional Programming in Scala is a serious tutorial for programmers looking to learn FP and apply it to the everyday business of coding. The book guides readers from basic techniques to advanced topics in a logical, concise, and clear progression. In it, you'll find concrete examples and exercises that open up the world of functional programming. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology Functional programming (FP) is a style of software development emphasizing functions that don't depend on program state. Functional code is easier to test and reuse, simpler to parallelize, and less prone to bugs than other code. Scala is an emerging JVM language that offers strong support for FP. Its familiar syntax and transparent interoperability with Java make Scala a great place to start learning FP. About the Book Functional Programming in Scala is a serious tutorial for programmers looking to learn FP and apply it to their everyday work. The book guides readers from basic techniques to advanced topics in a logical, concise, and clear progression. In it, you'll find concrete examples and exercises that open up the world of functional programming. This book assumes no prior experience with functional programming. Some prior exposure to Scala or Java is helpful. What's Inside Functional programming concepts The whys and hows of FP How to write multicore programs Exercises and checks for understanding About the Authors Paul Chiusano and Rúnar Bjarnason are recognized experts in functional programming with Scala and are core contributors to the Scalaz library. Table of Contents PART 1 INTRODUCTION TO FUNCTIONAL PROGRAMMING What is functional programming? Getting started with functional programming in Scala Functional data structures Handling errors without exceptions Strictness and laziness Purely functional state PART 2 FUNCTIONAL DESIGN AND COMBINATOR LIBRARIES Purely functional parallelism Property-based testing Parser combinators PART 3 COMMON STRUCTURES IN FUNCTIONAL DESIGN Monoids Monads Applicative and traversable functors PART 4 EFFECTS AND I/O External effects and I/O Local effects and mutable state Stream processing and incremental I/O |
akka http book: Introduction to JVM Languages Vincent van der Leun, 2017-06-28 Explore the Java Virtual Machine with modern programming languages About This Book This guide provides in-depth coverage of the Java Virtual Machine and its features Filled with practical examples, this book will help you understand the core concepts of Java, Scala, Clojure, Kotlin, and Groovy Work with various programming paradigms and gain knowledge about imperative, object-oriented and functional programming Who This Book Is For This book is meant for programmers who are interested in the Java Virtual Machine (JVM) and want to learn more about the most popular programming languages that can be used for JVM development. Basic practical knowledge of a modern programming language that supports object-oriented programming (JavaScript, Python, C#, VB.NET, and C++) is assumed. What You Will Learn Gain practical information about the Java Virtual Machine Understand the popular JVM languages and the Java Class Library Get to know about various programming paradigms such as imperative, object-oriented, and functional Work with common JVM tools such as Eclipse IDE, Gradle, and Maven Explore frameworks such as SparkJava, Vert.x, Akka and JavaFX Boost your knowledge about dialects of other well-known programming languages that run on the JVM, including JavaScript, Python, and Ruby In Detail Anyone who knows software development knows about the Java Virtual Machine. The Java Virtual Machine is responsible for interpreting Java byte code and translating it into actions. In the beginning, Java was the only programming language used for the JVM. But increasing complexity of the language and the remarkable performance of the JVM created an opening for a new generation of programming languages. If you want to build a strong foundation with the Java Virtual Machine and get started with popular modern programming languages, then this book is for you. The book will begin with a general introduction of the JVM and its features, which are common to the JVM languages, helping you get abreast with its concepts. It will then dive into explaining languages such as Java, Scala, Clojure, Kotlin, and Groovy and will show how to work with each language, their features, use cases, and pros and cons. By writing example projects in those languages and focusing on each language's strong points, it will help you find the programming language that is most appropriate for your particular needs. By the end of the book, you will have written multiple programs that run on the Java Virtual Machine and know about the differences between the various languages. Style and approach This practical, example-filled guide will help you get started with the JVM and some of its most popular languages. |
akka http book: Programming in Scala Martin Odersky, Lex Spoon, Bill Venners, 2008 A comprehensive step-by-step guide |
akka http book: Akka in Action Raymond Roestenburg, Rob Williams, Robertus Bakker, 2016-09-20 Summary 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. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology Akka 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. What's Inside 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 Introducing Akka Up and running Test-driven development with actors Fault tolerance Futures Your first distributed Akka app Configuration, logging, and deployment Structural patterns for actors Routing messages Message channels Finite-state machines and agents System integration Streaming Clustering Actor persistence Performance tips Looking ahead |
akka http book: Hands-On Spring Security 5 for Reactive Applications Tomcy John, 2018-07-31 Secure your Java applications by integrating the Spring Security framework in your code Key Features Provide authentication, authorization and other security features for Java applications. Learn how to secure microservices, cloud, and serverless applications easily Understand the code behind the implementation of various security features Book Description Security is one of the most vital concerns for any organization. The complexity of an application is compounded when you need to integrate security with existing code, new technology, and other frameworks. This book will show you how to effectively write Java code that is robust and easy to maintain. Hands-On Spring Security 5 for Reactive Applications starts with the essential concepts of reactive programming, Spring Framework, and Spring Security. You will then learn about a variety of authentication mechanisms and how to integrate them easily with the Spring MVC application. You will also understand how to achieve authorization in a Spring WebFlux application using Spring Security.You will be able to explore the security confgurations required to achieve OAuth2 for securing REST APIs and integrate security in microservices and serverless applications. This book will guide you in integrating add-ons that will add value to any Spring Security module. By the end of the book, you will be proficient at integrating Spring Security in your Java applications What you will learn Understand how Spring Framework and Reactive application programming are connected Implement easy security confgurations with Spring Security expressions Discover the relationship between OAuth2 and OpenID Connect Secure microservices and serverless applications with Spring Integrate add-ons, such as HDIV, Crypto Module, and CORS support Apply Spring Security 5 features to enhance your Java reactive applications Who this book is for If you are a Java developer who wants to improve application security, then this book is for you. A basic understanding of Spring, Spring Security framework, and reactive applications is required to make the most of the book. |
akka http book: Scala Functional Programming Patterns Atul S. Khot, 2015-12-29 Grok and perform effective functional programming in Scala About This Book Understand functional programming patterns by comparing them with the traditional object-oriented design patterns Write robust, safer, and better code using the declarative programming paradigm An illustrative guide for programmers to create functional programming patterns with Scala Who This Book Is For If you have done Java programming before and have a basic knowledge of Scala and its syntax, then this book is an ideal choice to help you to understand the context, the traditional design pattern applicable, and the Scala way. Having previous knowledge of design patterns will help, though it is not strictly necessary. What You Will Learn Get to know about functional programming and the value Scala's FP idioms bring to the table Solve day-to-day programming problems using functional programming idioms Cut down the boiler-plate and express patterns simply and elegantly using Scala's concise syntax Tame system complexity by reducing the moving parts Write easier to reason about concurrent code using the actor paradigm and the Akka library Apply recursive thinking and understand how to create solutions without mutation Reuse existing code to compose new behavior Combine the object-oriented and functional programming approaches for effective programming using Scala In Detail Scala is used to construct elegant class hierarchies for maximum code reuse and extensibility and to implement their behavior using higher-order functions. Its functional programming (FP) features are a boon to help you design “easy to reason about” systems to control the growing software complexities. Knowing how and where to apply the many Scala techniques is challenging. Looking at Scala best practices in the context of what you already know helps you grasp these concepts quickly, and helps you see where and why to use them. This book begins with the rationale behind patterns to help you understand where and why each pattern is applied. You will discover what tail recursion brings to your table and will get an understanding of how to create solutions without mutations. We then explain the concept of memorization and infinite sequences for on-demand computation. Further, the book takes you through Scala's stackable traits and dependency injection, a popular technique to produce loosely-coupled software systems. You will also explore how to currying favors to your code and how to simplify it by de-construction via pattern matching. We also show you how to do pipeline transformations using higher order functions such as the pipes and filters pattern. Then we guide you through the increasing importance of concurrent programming and the pitfalls of traditional code concurrency. Lastly, the book takes a paradigm shift to show you the different techniques that functional programming brings to your plate. This book is an invaluable source to help you understand and perform functional programming and solve common programming problems using Scala's programming patterns. Style and approach This is a hands-on guide to Scala's game-changing features for programming. It is filled with many code examples and figures that illustrate various Scala idioms and best practices. |
akka http book: Akka in Action, Second Edition Francisco Lopez-Sancho Abraham, 2023-09-19 Akka solves the big problems of distributed systems, from multithreading and concurrency to scalability and failure. Learn how to use it effectively. In Akka in Action, Second Edition you will learn how to: Create basic programs with Akka Typed Work with clusters to build robust, fault-tolerant programs Use Akka with Kubernetes Build microservices with Akka Create and maintain distributed state with strong consistency guarantees Employ actor-based concurrency and parallelism Test Akka software Akka in Action, Second Edition teaches you to use Akka Typed to solve common problems of distributed systems. You’ll learn how to bring together all of Akka’s moving parts to design and implement highly scalable and maintainable software. Extensively revised by Akka contributor Francisco López-Sancho Abraham, this new edition demonstrates Akka’s complex concepts through engaging hands-on examples. Discover the power of the Actor Model, how Akka works with Kubernetes, and how to utilize Akka modules to create microservices that are reliable and fault tolerant. About the technology For large software systems, the action is in the “-ilities.” Scalability. Reliability. Maintainability. Capability. Akka, toolkit for building distributed message-driven applications, delivers on the “ilities.” And recent innovations, including Akka Typed, ensure that this amazing platform will remain the best way to build and deploy distributed Java and Scala applications for years to come. About the book Akka in Action, Second Edition is your guide to building message-centric distributed applications systems. This new edition covers all features of Akka, including Akka Typed. You’ll learn to create microservices using Akka’s powerful suite of tools, Akka Sharding, Persistence, Streams, Persistence Query, Projections, and gRPC. Practical examples taken directly from industry guide you through clustering, deploying to Kubernetes, and taking full advantage of Akka’s Actors-based approach to concurrency. What's inside Work with clusters to build robust, fault-tolerant programs Maintain distributed systems with strong consistency guarantees Utilize concurrency and parallelism Test Akka software About the reader For readers comfortable with Java and Scala. About the author Francisco Lopez Sancho-Abraham is a senior consultant at Lightbend, and a principal engineer on the Akka Team. Raymond Roestenburg, Rob Bakker, and Rob Williams are the authors of the first edition of Akka in Action. Table of Contents 1 Introducing Akka 2 Up and running 3 One actor is no actor 4 Akka test kit 5 Fault tolerance 6 Discovery and routing 7 Configuration 8 Clustering 9 Sharding and persistence 10 Streams, persistence queries, and projections 11 Akka ports 12 Real-world example: An Akka betting house 13 Clustering, part 2 14 Connecting to systems with Alpakka 15 Akka betting house, part 2 16 Akka Streams, part 2 |
akka http book: Programming with C++20 Andreas Fertig, 2021-11-26 Programming with C++20 teaches programmers with C++ experience the new features of C++20 and how to apply them. It does so by assuming C++11 knowledge. Elements of the standards between C++11 and C++20 will be briefly introduced, if necessary. However, the focus is on teaching the features of C++20. You will start with learning about the so-called big four Concepts, Coroutines, std::ranges, and modules. The big four a followed by smaller yet not less important features. You will learn about std::format, the new way to format a string in C++. In chapter 6, you will learn about a new operator, the so-called spaceship operator, which makes you write less code. You then will look at various improvements of the language, ensuring more consistency and reducing surprises. You will learn how lambdas improved in C++20 and what new elements you can now pass as non-type template parameters. Your next stop is the improvements to the STL. Of course, you will not end this book without learning about what happened in the constexpr-world. |
akka http book: Spring Integration in Action Iwein Fuld, Jonas Partner, Mark Fisher, Marius Bogoevici, 2012-09-18 Summary Spring Integration in Action is a hands-on guide to Spring-based messaging and integration. After addressing the core messaging patterns, such as those used in transformation and routing, the book turns to the adapters that enable integration with external systems. Readers will explore real-world enterprise integration scenarios using JMS, Web Services, file systems, and email. They will also learn about Spring Integration's support for working with XML. The book concludes with a practical guide to advanced topics such as concurrency, performance, system-management, and monitoring. The book features a foreword by Rod Johnson, Founder of the Spring Network. About the Technology Spring Integration extends the Spring Framework to support the patterns described in Gregor Hohpe and Bobby Woolf's Enterprise Integration Patterns. Like the Spring Framework itself, it focuses on developer productivity, making it easier to build, test, and maintain enterprise integration solutions. About the Book Spring Integration in Action is an introduction and guide to enterprise integration and messaging using the Spring Integration framework. The book starts off by reviewing core messaging patterns, such as those used in transformation and routing. It then drills down into real-world enterprise integration scenarios using JMS, Web Services, filesystems, email, and more. You'll find an emphasis on testing, along with practical coverage of topics like concurrency, scheduling, system management, and monitoring. This book is accessible to developers who know Java. Experience with Spring and EIP is helpful but not assumed. Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book. What's Inside Realistic examples Expert advice from Spring Integration creators Detailed coverage of Spring Integration 2 features About the Authors Mark Fisher is the Spring Integration founder and project lead. Jonas Partner, Marius Bogoevici, and Iwein Fuld have all been project committers and are recognized experts on Spring and Spring Integration. Table of Contents PART 1 BACKGROUND Introduction to Spring Integration Enterprise integration fundamentals 24 PART 2 MESSAGING Messages and channels Message Endpoints Getting down to business Go beyond sequential processing: routing and filtering Splitting and aggregating messages PART 3 INTEGRATING SYSTEMS Handling messages with XML payloads Spring Integration and the Java Message Service Email-based integration Filesystem integration Spring Integration and web services Chatting and tweeting PART 4 ADVANCED TOPICS Monitoring and management Managing scheduling and concurrency Batch applications and enterprise integration Scaling messaging applications with OSGi Testing |
akka http book: Scala Cookbook Alvin Alexander, 2021-08-10 Save time and trouble building object-oriented, functional, and concurrent applications with Scala 3. The latest edition of this comprehensive cookbook is packed with more than 250 ready-to-use recipes and 700 code examples to help you solve the most common problems when working with Scala and its popular libraries. Whether you're working on web, big data, or distributed applications, this cookbook provides recipes based on real-world scenarios for experienced Scala developers and for programmers just learning to use this JVM language. Author Alvin Alexander includes practical solutions from his experience using Scala for highly scalable applications that support concurrency and distribution. Recipes cover: Strings, numbers, and control structures Classes, methods, objects, traits, packaging, and imports Functional programming in a variety of situations Building Scala applications with sbt Collections covering Scala's wealth of classes and methods Actors and concurrency List, array, map, set, and more Files, processes, and command-line tasks Web services and interacting with Java Databases and persistence, data types and idioms. |
akka http book: Practical Microservices with Dapr and .NET Davide Bedin, 2020-12-11 Use the new, enticing, and highly portable event-driven runtime to simplify building resilient and scalable microservices for cloud and edge applications Key FeaturesBuild resilient, stateless, and stateful microservice applications that run on the cloud and edgeSolve common distributed systems such as low latency and scaling using any language and frameworkUse real-time and proactive monitoring tools to support a reliable and highly available systemBook Description Over the last decade, there has been a huge shift from heavily coded monolithic applications to finer, self-contained microservices. Dapr is a new, open source project by Microsoft that provides proven techniques and best practices for developing modern applications. It offers platform-agnostic features for running your applications on public cloud, on-premises, and even on edge devices. This book will help you get to grips with microservice architectures and how to manage application complexities with Dapr in no time. You'll understand how Dapr offers ease of implementation while allowing you to work with multiple languages and platforms. You'll also understand how Dapr's runtime, services, building blocks, and software development kits (SDKs) help you to simplify the creation of resilient and portable microservices. Dapr provides an event-driven runtime that supports the essential features you need to build microservices, including service invocation, state management, and publish/subscribe messaging. You'll explore all of those in addition to various other advanced features with this practical guide to learning Dapr. By the end of this book, you'll be able to write microservices easily using your choice of language or framework by implementing industry best practices to solve problems related to distributed systems. What you will learnUse Dapr to create services, invoking them directly and via pub/subDiscover best practices for working with microservice architecturesLeverage the actor model to orchestrate data and behaviorUse Azure Kubernetes Service to deploy a sample applicationMonitor Dapr applications using Zipkin, Prometheus, and GrafanaScale and load test Dapr applications on KubernetesWho this book is for This book is for developers looking to explore microservices architectures and implement them in Dapr applications using examples on Microsoft .NET Core. Whether you are new to microservices or have knowledge of this architectural approach and want to get hands-on experience in using Dapr, you’ll find this book useful. Familiarity with .NET Core will help you to understand the C# samples and code snippets used in the book. |
为什么Akka(Actor模型)在中国不温不火? - 知乎
Akka自己是什么,多看书多思考,隔壁Golang家说自己某routine简单好使,也可以对比一下异同。 而且,提醒一点,Akka …
akka有哪些比较好的学习资料? - 知乎
akka的理论基础是actor model, 某大神说过,这才 we do OO right。 因为长期的OOP教育(荼毒? )很多人刚接触akka …
.net生态是否有类似Akka的框架? - 知乎
Dec 18, 2023 · 高可用、容错的分布式系统 - Akka.Cluster、Akka.Cluster.Sharding 以及建立在 Akka.Cluster 之上的其他工 …
akka和erlang在MMO游戏服务器的性能哪个更适用? - 知乎
另外再说两句,我觉得akka和erlang没什么比较性,因为在游戏服务器开发领域必须满足能够热更新的条件,方便及时排除BUG修补 …
国内哪家公司用到了akka框架? - 知乎
我们公司是一家设计制造汽车行业 IoT 设备的公司。我们的设备有上报数据、接收参数下发和远程升级的功能。负责设备接入和通信 …
为什么Akka(Actor模型)在中国不温不火? - 知乎
Akka自己是什么,多看书多思考,隔壁Golang家说自己某routine简单好使,也可以对比一下异同。 而且,提醒一点,Akka不提供事务性的保证,而且几乎把所有分布式通信(即使是单机内 …
akka有哪些比较好的学习资料? - 知乎
akka的理论基础是actor model, 某大神说过,这才 we do OO right。 因为长期的OOP教育(荼毒? )很多人刚接触akka的时候主要的阅读理解障碍是 为啥要这么干,然后才是有啥好处,加上 …
.net生态是否有类似Akka的框架? - 知乎
Dec 18, 2023 · 高可用、容错的分布式系统 - Akka.Cluster、Akka.Cluster.Sharding 以及建立在 Akka.Cluster 之上的其他工具,使得通过利用具有拓扑感知的消息路由和分发的点对点编程模 …
akka和erlang在MMO游戏服务器的性能哪个更适用? - 知乎
另外再说两句,我觉得akka和erlang没什么比较性,因为在游戏服务器开发领域必须满足能够热更新的条件,方便及时排除BUG修补漏洞,基本上只有C++,GO带Lua脚本和erlang的OTP能够 …
国内哪家公司用到了akka框架? - 知乎
我们公司是一家设计制造汽车行业 IoT 设备的公司。我们的设备有上报数据、接收参数下发和远程升级的功能。负责设备接入和通信协议的通信服务器就是基于Akka (Scala) 的。作为主要开发 …
为什么 spark 2.0 底层通信不用 Akka 而转用 netty - 知乎
2. Spark的Akka配置是针对Spark自身来调优的,可能跟用户自己代码中的Akka配置冲突。 3. Spark用的Akka特性很少,这部分特性很容易自己实现。同时,这部分代码量相比Akka来说少 …
Akka - 知乎
切实用过Akka写过几个生产级的应用。从我的经验来说,我觉得Akka推广不开主要是因为应用面很局限。 首先,Akka原生是Scala,这就足够小众了。FP原教旨主义认为这玩意不够干净, …
distruptor和akka两种并发框架有啥区别? - 知乎
Mar 22, 2019 · Akka是一个开源的、基于Actor模型的并发编程框架。 Actor模型是一种轻量级的并发编程模型,它将并发程序看作是一组相互独立的、互相发送消息的Actor(类似于面向对象编 …
mbtech和长城动力研究院? - 知乎
mbtech,上海梅赛德斯奔驰车辆技术有限公司。听着名头挺虎的,技术咨询公司,已经被akka收购了。另一家现阶段中国一线的自主品牌的核心研究院。 mb… 显示全部
Scala + Akka与Erlang/OTP的应用场景有什么细微不同,优势和劣 …
在于对慢IO调用的支持性。 akka 的actor 里发起一个慢IO 就歇菜了,语言自身不会处理。erlang 的actor 里调用慢IO 语言自身会切换执行。 场景: 大规模利用代理进行爬虫抓取。并发到1K …