Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Learning Path: Akka: Building Applications and Microservices
Rating: 3.5 out of 5(160 ratings)
1,050 students

Learning Path: Akka: Building Applications and Microservices

Embrace yourself to learn the art of creating applications and microservices with Akka
Last updated 8/2017
English

What you'll learn

  • Explore Akka's version of the actor model
  • Find out how actors solve concurrency problems
  • Build stateful actors with Akka Persistence
  • Create microservices using Akka HTTP
  • Write performance tests for your microservices

Course content

2 sections55 lectures4h 41m total length
  • The Course Overview3:22

    This video provides an overview of the entire course.

  • Understanding the Actor Model3:20

    To start working with Akka and Actors, we need to understand what the Actor Model is and why we use the Actor Model on concurrent programs.

  • Concepts and Terminology4:06

    To get our hands dirty with web development in Akka, we first need to get ourselves introduced to Akka concepts and terminologies.

  • Let's Create Hello World3:23

    In this video, we'll take our first steps in creating our first Akka project.

  • Actor System and Hierarchical Structure4:35

    In this video, we will talk about Actor System and the structure for actors to understand the actor relationships better.

  • Actor Components and Lifecycle3:36

    Like us, every actor has different stages and phases it goes through. We need to master them before going ahead and implementing them in our workflow.

  • Creating an Actor with Props4:12

    We've been introduced to the lifecycle; now let's take this a step further and understand actor creation.

  • Talking to an Actor4:57

    Communication between actors is what we'll be looking at in this video.

  • Supervision and Monitoring6:00

    We saw how communication between actors works, but let's take a deeper look at dependency relationships and failure responses in this video.

  • ActorRef Versus Actor Path Versus Actor Selection5:03

    To be able to work with actors, we need to grasp the basics of how to identify and locate actors. In this video, we will see these methods to do just that.

  • Sending Messages via Router5:47
  • Replacing Actor Behavior via become/unbecome4:48

    It is important to ensure that a sent message reaches its intended destination without any errors. To know this functionality better, let's get introduced to routing in Akka.

  • Replacing Actor Behavior via FSM4:47

    Let's jump to the next method of changing actor behavior at runtime — FSM.

  • Introduction to Akka Persistence4:27

    To increase the efficiency of our actors, we need to understand persistence in Akka. This video is dedicated to get us started on the persistence front.

  • Creating Persistent Actors4:26

    Let's see how to implement persistence in Akka by implementing a Persistent Actor in this video.

  • Playing with a Persistent Actor4:21

    The power of persistence lies in how we can recover the state of our actors. Let's play around with snapshots and the recovery mode to understand them better.

  • Persistence FSM6:18

    As we go ahead, let's look at the implementation of Persistent Actor that can replace its behavior via FSM.

  • Persistence Query4:24

    Persistence Query is powerful enough to fulfill the query needs of our app. Let's get introduced to it in this video.

  • Playing with Remote Actors5:26

    In real life, your application might get divided in multiple nodes. For this, we need to deal with remote actors.

  • Building a Cluster6:10

    In Scala projects, you need to design your application across a cluster. To do this, we will introduce the Akka cluster and build a simple cluster.

  • Adding Load Balancer to a Cluster Node3:09

    In your cluster, you need to balance work over nodes. So, we will introduce how we can add load balancer to your cluster.

  • Creating a Singleton Actor in the Cluster5:45

    In some cases, you want to run instances from specific actors. To do so, we will introduce a Cluster Singleton.

  • Cluster Sharding5:49

    Sometimes, you have many stateful actors that together consume more resources, so you need to distribute them across several nodes in the Cluster without having to care about their physical location in the Cluster.

  • How to Test an Actor?5:44

    The Actor class is not like a normal class and actors do their work asynchronously. So, we can't test it like a normal class. Hence, we will introduce some ways to test the actor logic.

  • Testing a Parent-child Relationship3:26

    When you have parent and child actors, you need to test each actor without another actor. So, we will introduce a dependency-injection to test the parent and child actor.

  • Testing FSM4:24

    When you have an FSM actor in your application, you want to test if you implement state machine correctly or not. So, we will introduce how to test the FSM actor logic.

  • Multi Node Testing6:31

    When you implement remote actor's runs on different nodes, you want to test how these nodes will act. So we will introduce Multi Node test kit.

  • Introduction to Akka Streams5:37

    When you start dealing with processing big data, you will face two main problems, Blocking and Back pressure. So, we will introduce Akka Streams to solve your problems.

  • Reactive Tweets4:54

    To understand the Akka Stream, we will implement the reactive tweets application.

  • Testing Streams6:02

    We want to write unit tests for any code line you wrote. So, we will introduce different ways to test your streams.

  • Working with Graphs4:56

    Not everything can be expressed as a linear sequence of Akka streams. So, we will introduce Flow Graphs.

  • Working with Stream IO4:16

    If you want to use files as a source or sink, we will introduce Akka Stream IO.

  • Introduction to Akka HTTP4:04

    In some cases, we want your application to interact with the external world. So, we will introduce the Akka HTTP Module.

  • Working with Client-side API5:58

    In some cases, your application needs to consume data from external services. So, we will introduce the Akka HTTP Client-side API and the different levels on it.

  • Working with Server-side API5:01

    In some cases, your application wants to provide services for the external world. So, we will introduce the Akka HTTP Server-side API and the different levels on it.

  • Let's Implement a REST API5:04

    To understand the server-side API. We will implement more complex examples.

  • Let's Test Our REST API3:31

    When you provide a service for the external world, you will need to implement test cases for it. So, we will implement test cases for our REST API that was implemented in the previous video as an example of how to use the akka-http-test kit.

  • Balancing Workload Across Nodes5:34

    In this video, we will introduce Balancing Workload Across Nodes pattern.

  • Throttling Messages4:26

    What if your application sends HTTP requests to an external service and you want to limit the number of requests during a specific period? Here, we will introduce the Throttling Messages pattern to control the rate of messages sent.

  • Shutdown Patterns3:26

    In Akka, we don't have a flag, configuration setting, or callback function; we can register for it to tell Akka to shutdown the actor system when the app is finished. We will introduce the pattern to control when the actor system should terminate.

  • Ordered Termination3:44

    What if you have children actors and you want to terminate them on a specific order after the parent terminated? We will introduce the Ordered Termination pattern.

  • Scheduling Periodic Messages2:57

    If you want to schedule messages that send every interval in actor, we will introduce the scheduling periodic messages pattern.

Requirements

  • Knowledge of Java and Scala

Description

If you’re looking at building distributed, concurrent, fault-tolerant and scalable applications with ease, Akka is the go-to tool for it.

Akka written in Scala, helps you build distributed systems that provides outstanding performance on local machines as well as over remote networks.

Akka: Building Applications and Microservices with Akka is Packt’s Video Learning Path that is a series of individual video products put together in a logical and stepwise manner such that each video builds on the skills learned in the video before it.

This Learning Path delivers a clear and practical introduction to the Akka toolkit, explaining the key components you need to know to get up and running with developing applications of your own. You will learn about the actor system, how to create hierarchical structures in Akka, and how to make routes in order to send messages to other actors. We will look at other use cases such as building an actor that can change its behavior during runtime. You will then create stateful actors, work with a cluster system, and work with remote actors.

Then, this Learning Path will make you understand how to build Reactive microservices using Akka and Akka HTTP, which adhere to the principles underlying the Reactive Manifesto. You will delve deeper into concepts such as Responsive, Resilient, Elastic, and Message-Driven and will see how microservices should be designed to adhere to those principles. By the end of this Path, you’ll be well-versed in creating applications and microservices.

The goal of this course is to make you efficient at building applications and microservices with Akka.

This Learning Path is authored by some of the best in the field.

Salma Khater is a senior software engineer with over 5 years of professional experience in development and deploying applications on the JVM using both functional and object-oriented paradigms including Scala and Java. She is specialized in designing and engineering real-time applications and distributed systems based on Akka and using frameworks and libraries like Play2, Spray. io, Thrift, Vertx, Django, Rails, and multiple SQL and NoSQL storage systems, for example  MongoDB, Cassandra, Neo4J, Elasticsearch, and PostgreSQL.

Tomasz Lelek is a Software Engineer and Co-Founder of initLearn. He mostly does programming in Java and Scala. He dedicates his time and energy to being better at everything. He is now delving into Big Data Technologies. He is very passionate about everything associated with software development.

Who this course is for:

  • If you’re a Scala developer looking forward to building distributed, concurrent, fault-tolerant and scalable applications with ease, then this Video Learning Path is for you.