My Account Log in

1 option

Scala reactive programming : build scalable, functional reactive microservices with Akka, Play, and Lagom / Rambabu Posa.

Ebook Central College Complete Available online

View online
Format:
Book
Author/Creator:
Posa, Rambabu, author.
Language:
English
Subjects (All):
Scala (Computer program language).
Physical Description:
1 online resource (518 pages) : illustrations
Edition:
1st ed.
Place of Publication:
Birmingham, [England] ; Mumbai, [India] : Packt Publishing, 2018.
Biography/History:
Posa Rambabu: Rambabu Posa has been working as Java developer since 2004 and a Scala developer since mid-2015. He loves Functional Programming in the Test-Driven Development way to develop Reactive microservices. He loves teaching and has been giving online training and writing tutorials on both the Java and Scala ecosystems. He loves developing Reactive systems using Lightbend's Reactive Platform Technology stack like Lagom Framework, ConductR, Scala, Akka Toolkit, Akka Streams, Play Framework, and others.
Summary:
Reactive programming is a better, scalable, and faster 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 more, and is central to many concurrent systems. This book will be your guide to getting started with Reactive programming.
Contents:
Cover
Title Page
Copyright and Credits
Dedication
Packt Upsell
Contributors
Table of Contents
Preface
Chapter 1: Getting Started with Reactive and Functional Programming
Introduction to Reactive
What is Reactive?
What is Reactive programming?
What is a data stream or stream?
RP versus Reactive systems versus Reactive architecture
Event-Driven versus Message-Driven
Benefits of Reactive systems with RP
Functional programming
What is functional programming?
Principles of functional programming
Benefits of functional programming
Functional Reactive programming
Types of RP
Why FP is the best fit for RP
Reactive Manifesto
Need of Reactive Manifesto
Principles of Reactive systems
Message-Driven
Elasticity
Resilience
Responsiveness
Why Reactive Streams specification?
Why is Play Framework the best for Reactive systems?
Reactive systems versus traditional systems
The Java 9 Flow API
Flow API - Publisher
Flow API - Subscriber
Flow API - Subscription
Flow API - Processor
Flow API - Flow
Implementations of Reactive Streams
Lightbend's Reactive Platform
Pivotal's Reactor project
Microsoft's Reactive Extensions (RX)
Netflix's RxJava
Eclipse's Vert.x
Ratpack
How are Reactive Streams born?
Marble diagrams
What is a Marble diagram?
Data transformation
Benefits of Marble diagrams
Rules of Marble diagrams
Important FRP operators
FRP - the map() function Marble diagram
FRP - the flatMap() function Marble diagram
FRP - the merge() function Marble diagram
FRP - the filter() function Marble diagram
FRP - the reduce() function Marble diagram
FRP - the concat() and sorted() functions Marble diagram
Observer pattern versus Reactive pattern
Summary
Chapter 2: Functional Scala.
Introduction to Scala
The Scala ecosystem
Understanding the Scala Application
Scala REPL
Principles of Scala FP
FP Design Patterns
Scala FP features in action
Immutability
Scala functions
Scala pure functions
Pattern matching
Scala combinators
For-comprehensions
Scala implicits
Implicit parameters
Implicit conversions
Scala anonymous functions
Everything is an expression
Referential transparency
Functions are first-class citizens
Partial functions
Function currying
Higher-Order Functions
Scala tail-recursion
Types of recursions
Benefits of linear recursion
A linear-recursion example
Benefits of tail-recursion
A tail-recursion example
Scala Type class
Benefits of Type classes
Scala Collections in action
Scala List
Scala List Cons operator
Right associative rule
Scala Map
Scala Range
Scala Functional Design Patterns
Scala map() function
Scala flatMap() function
Advantages of flatMap
Scala Monads in action
Scala Option
Scala Either
Scala Case class and object
Benefits of Scala Case class
Scala Traits in action
Trait as an interface
Traits linearization
Linearization rules
Chapter 3: Asynchronous Programming with Scala
Introduction to Scala AP
What is asynchronous?
Differences between asynchronous and synchronous
Benefits of asynchronous programming
Differences between Concurrency and Parallelism
How Scala supports AP
The Scala Future API
Building blocks of the Scala Future API
Benefits of the Scala Future API
The Scala Future
What is a Future in Scala?
What is a computation unit?
Future Trait definition
Future Companion object
The complete Scala Future API
Scala Future examples
The Scala Promise.
What is a Scala Promise?
The Scala Promise API
Scala Promise examples
Scala ExecutionContext
What is ExecutionContext?
The relationship between Scala Future components
Differences between a Future and a Promise
Scala Future API callbacks
Scala Future API combinators
Scala Future.sequence()
The Scala Async Library
Scala Async API
The Scala Future API in Play Framework
The Scala Future API in the Akka Toolkit
A Scala Future versus a Java Future
Chapter 4: Building Reactive Applications with Akka
Introduction to Akka
What is Akka?
Applications on the JVM (Java Virtual Machine)
Features of Akka
Benefits of Akka (or why do we need Akka?)
Building blocks of the Akka Toolkit
Akka Extensions (or modules)
Akka Clients
Actor Model in-depth
What is the Actor Model?
Principles of the Actor Model (or properties of Actor in the Actor Model)
Issues with the Shared-State Concurrency model
Benefits of the Actor Model
Components of the Actor Model (or building blocks of the Actor Model)
What are the benefits of immutable messages in the Actor Model?
How Akka implements the Actor Model
Other Actor Model implementations
Akka ActorSystem
What is the ActorSystem?
Roles and responsibilities of ActorSystem
How to create an Akka ActorSystem?
How to shut down an Akka ActorSystem?
Components of Akka's ActorSystem
What is materialization and Akka's implementation?
Akka Actors
What is an Actor?
Components of Akka Actor
Akka Actor - ActorRef
Akka Actor - Dispatcher
Benefits of the dispatcher pattern
Akka Actor - Mailbox(MessageQueue)
Akka Actor - Actor
Akka Actor - ActorPath
Actor versus thread
The lifecycle of an Akka Actor
Actor's preStart() lifecycle method
Actor's postStop() lifecycle method.
Actor's preRestart() lifecycle method
Actor's postRestart() lifecycle method
Why Actors are lightweight?
Actor basic operations
Defining an Actor
Creating an Actor
Sending messages to an Actor
The tell (!) function
The ask (?) function
Replaying messages from an Actor
Actor to Actor communication
Actor to non-Actor communication
Stopping an Actor
Killing an Actor
Become/unbecoming an Actor
Case object Switch
Supervise an Actor
Akka Supervision
What is supervision?
What is the main goal of Akka's supervision?
Benefits of supervision
Why don't we write exceptions or failures handling in Actor itself?
Rules of Akka Supervision
Akka Supervision strategies
Akka's supervision hierarchy
Actor's Path
What is Akka's Let It Crash model?
Akka HelloWorld Actor example
Akka Actors communicate example
Akka Actor's lifecycle example
Akka parent-child Actors example
Actor's Path versus Reference
Differences between ActorRef and ActorPath
When we execute actorRef.tell (message), what happens internally?
MessageDispatcher
How to configure a dispatcher?
Akka Configuration
Akka SBT Templates
Akka Logging
Business problem
Problem discussion
Akka Actor's implementation
Chapter 5: Adding Reactiveness with RxScala
Introduction to RxScala
Reactive Extensions
Understanding Rx implementations
RxScala
Benefits of Reactive Extensions
Limitations of Reactive Extensions
Building blocks of RxScala
Understanding the Observable
Developing RxScala HelloWorld with an Observable
Observer
Extending RxScala HelloWorld with Observer
Subscriber
Extending RxScala HelloWorld with Subscriber
Subscription
Scheduler
RxScala Marble diagrams
RxScala's map() function
Summary.
Chapter 6: Extending Applications with Play
Introduction to Play Framework
What is Play Framework?
Features of Play Framework
Benefits of Play Framework
Why Play Framework is so fast?
Clients of Play Framework
Building blocks of Play Framework
Play Routings
Client Request
Controller Action
Routes
Play Controllers
View Templates
Benefits of Twirl Templates
Model and Forms
Other components - services and repositories
Configuration
Play Framework View Template constructs
Twirl View Templates
Twirl Template Constructs
Architecture of Play Framework
The new features of Play Framework
Play Framework 2.5.x features
Play Framework 2.6.x features
Play Application project structure
Play/Scala HelloWorld example
What is Play Dependency Injection (DI)
Benefits of DI
Extend HelloWorld Example With DI
Extending HelloWorld example with Scala Futures
Play Form - Data Model
Play Framework Form API
Play Form - Binding Data
Play Form functions
Play Framework Form-based web application
Extending Play/Scala HelloWorld example with Akka Toolkit
Play Fileupload web application
Chapter 7: Working with Reactive Streams
Introduction to Akka Streams
What is a stream?
Goals of data streaming
What is Akka Streams?
Goals of the Akka Streams API
Features of the Akka Streams API
Benefits of the Akka Streams API
Why do we need Akka Streams and why not just Akka?
Other Reactive Streams implementations
Components of Akka Streams
The Akka Streams API
What is streaming data?
The Akka Streams Source component
The Akka Streams Sink component
The Akka Streams Flow component
RunnableGraph or Graph
Modules of Akka Streams
Akka Materialization
What is materialization?
Akka's Materializer.
Akka's ActorMaterializer.
Notes:
Includes index.
Description based on online resource; title from PDF title page (EBC, viewed March 22, 2018).
ISBN:
9781787282872
1787282872
OCLC:
1463580720

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account