Key Features
- Architect and program your Scala applications with microservices using the right strategies, by avoiding common gotchas and remaining responsive with higher throughput
- Improve the scalability and responsiveness of your application.
- Examine a number of real-world use cases and hands-on code examples
- Build your very own CQRS system with an example using Akka Persistence and Apache Kafka
Book Description
Microservices is an architectural style and pattern that is becoming hugely popular and adopted by many organizations because of the advantages that it offers. It is an approach to building asynchronous, non-blocking, and failure-resilient applications.
Our book will focus on how to build microservices in Scala. It will address the best practices and common pitfalls in microservice architecture and useful implementation strategies in Scala. We start by shedding light on traditional monoliths, Service Oriented Architecture (SOA), and how microservices evolved from it. Next we move on to explain the Play framework and build a small but working application. You will understand the importance of writing code that is asynchronous and non-blocking and how Play helps us do this. Later, the book explains how to build Reactive microservices using Akka and Akka HTTP, which adhere to the principles underlying the Reactive Manifesto.
Next, we explore building high-throughput and resilient applications in some detail. At the end of the book, we explore Lagom and how it incorporates best practices to avoid common pitfalls.
What you will learn
- Learn how microservices communicates using REST and other asynchronous means
- Automatically convert JSON to Object and avoid manual parsing
- Learn how to handle blocking calls
- Best practices for building robust microservices
- Understand the application of the Reactive Manifesto in microservices
- Handle failures with Akka
- Write Reactive microservices using Akka HTTP
- Learn what Lagom is and how to use it write microservices
About the Author
Jatin Puri is a software developer and a concurrent and distributed programming enthusiast. He holds an undergraduate degree in Computer Science and MSc in Mathematics from Birla Institute of Technology and Sciences, Pilani, India. He is one of the organizers of the Hyderabad Scala Meetup and is actively involved with the Scala community. He conducts Scala training on behalf of Lightbend as an independent contractor at enterprises and workshops, and for Akka and Play individually. He also made a tiny but proud contribution to Project Palladium (the precursor to Scala Meta).