Akka/Pekko HTTP with Scala

Build microservices in minutes. Write reactive, stream-based REST APIs, backends and microservices with Akka HTTP or Pekko HTTP.


REST easy.

Distributed systems are a fact of life now. However, distributed monoliths can grind your system and your dev speed to a halt. Although they're not perfect, microservices can solve a lot of your problems. Akka HTTP can help you spin up any HTTP or REST service, big or small, in minutes. It's Akka Streams-based, fault-tolerant, reactive, and powers the brilliant Play Framework and many of the services we take for granted.

This course will teach you how to write HTTP and REST APIs the right way with this powerful toolkit.

After this course, you'll be able to:

  • create any HTTP service of any complexity
  • write REST APIs that can send and receive anything
  • handle JSON with both high-control and hands-off, when you choose
  • use 50+ directives and combinations for arbitrary server logic
  • support JWT authorization in your projects
  • secure your server with HTTPS
  • test routes and server logic
  • use WebSockets for back-and-forth communication
  • support arbitrary file uploads to your server
  • use 3 different client APIs to interact with any other REST service

Plus some extra perks:

  • You'll have access to the entire code I write on camera (all 2244 lines of it)
  • You'll be invited to our private Slack room where I'll share latest updates, discounts, talks, conferences, and recruitment opportunities
  • (soon) You'll have access to the takeaway slides
  • (soon) You'll be able to download the videos for your offline view

Skills you'll get:

  • Create HTTP (micro) services in high-control mode
    • process any HTTP requests
    • extract HTTP headers & payloads
    • send responses, attach headers and payloads
    • marshal and unmarshal JSON
    • handle URL query parameters
  • Create HTTP (micro) services with high-level Directives
    • handle URL paths
    • extract URL query parameters
    • extract HTTP headers
    • send back statuses and replies of any size and complexity
    • differentiate HTTP methods
    • create routes and routing logic
    • create and extract JSON objects auto-magically
    • upload files of any size
    • create WebSockets
    • incorporate JWT authorization
    • handle HTTP rejections
    • handle internal and remote exceptions
    • save and reuse logic pieces in other servers
    • combine ALL of the above in servers of any complexity
  • Interact with other HTTP servers and REST APIs as a client
    • the high-control mode: the connection-level API
    • the kinda-committed mode: the host-level API
    • the hands-free mode: the request-level API

all with live runnable examples and practiced with exercises.


Get started now!

Your Instructor

Daniel Ciocîrlan
Daniel Ciocîrlan

I'm a software engineer and the founder of Rock the JVM. I started the Rock the JVM project out of love for Scala and the technologies it powers - they are all amazing tools and I want to share as much of my experience with them as I can.

As of February 2024, I've taught Java, Scala, Kotlin and related tech (e.g. Cats, ZIO, Spark) to 100000+ students at various levels and I've held live training sessions for some of the best companies in the industry, including Adobe and Apple. I've also taught university students who now work at Google and Facebook (among others), I've held Hour of Code for 7-year-olds and I've taught more than 35000 kids to code.

I have a Master's Degree in Computer Science and I wrote my Bachelor and Master theses on Quantum Computation. Before starting to learn programming, I won medals at international Physics competitions.


Frequently Asked Questions

How long is the course? Will I have time for it?
The course is ~13 hours in length, with lectures around 20 minutes each. I recommend at least 1 hour of focused learning at one time.
How is a usual lesson like?
Code is king, and we write it from scratch. In a typical lesson I'll explain some concepts, either briefly on a diagram or directly in the code. We then run live examples, and usually I'll finish the lesson with some exercises, which I then solve on camera after you've tried them yourself.
Can I expense this at my company?
Of course! You'll get a detailed receipt with your purchase, including VAT (if applicable to you), which you can take to your employer to reimburse. Most (wise) companies will reimburse courses like this.
Is the course hard?
Not if you've done Scala and some Akka Streams before. I've designed the course to give you a challenge, but not too much that it becomes frustrating. In case you struggle with something, we have a whole group on Slack for discussions, and I'm responsive.
I've never written Scala before. Can I take this course?
You shouldn't. The course is for Scala programmers. Even though we do a bit of a recap at the beginning of the course to make sure we're all on the same page, that part is not enough to give you confident skills with Scala if you've never seen it before.
I'm comfortable with Scala and need to spin up REST services easily. Should I take this course?
Yes! This course is for you.
Daniel, I want to join but I can't afford it.
For a while, I offered discounts for the Rock the JVM courses to whomever needed them. But then I looked at the stats: almost nobody who took them actually completed any course. The full-price students were 3x as likely to complete the course. So I'm not offering discounts anymore. This course will pay off if you commit.
What if I don't like the course?
Then I want to give your money back. Email me at [email protected] with your receipt, and I will refund you. Less than 1% of the Rock the JVM students have refunded a course, and the refund took less than 72 hours.
Does this work with Akka HTTP or Pekko HTTP?
Both! The course was originally recorded for Akka, but the code is almost identical for Pekko and I give detailed instructions for the (minimal) differences.