Book Image

Mastering Akka

By : Christian Baxter
Book Image

Mastering Akka

By: Christian Baxter

Overview of this book

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.
Table of Contents (17 chapters)
Mastering Akka
Credits
About the Author
Acknowledgments
About the Reviewer
www.PacktPub.com
Preface

Invoking RESTful APIs with Akka HTTP


We've spent quite a bit of time, up to this point, discussing how to build RESTful interfaces to support receiving inbound external requests to delegate to your actors. Now, we'll flip things around and talk about how we can make those external calls to a RESTful API using Akka HTTP. You can use this approach if you need to consume some external service over the internet, such as our dummy credit card charging service in the bookstore app, or to invoke your own internal APIs if you go with a microservices-like approach in your infrastructure.

Over the next few sections I'll break down the main features of Akka's client-side HTTP functionality so you will understand the main usage patterns for that library. Then, you can use this knowledge to remove dispatch from the bookstore code base and replace it with client-side Akka HTTP.

Client-side Akka HTTP and streams

Like the server-side API, the client-side API for Akka HTTP is built on top of Akka Streams. This...