In this chapter, we briefly discussed the pros and cons of the microservice-based approach.
We've built two small examples with similar functionality but different technological stacks.
The first project was built using a purely functional approach with wrapping effects in IO monad and functional streams. This allowed us to describe a system as a computation that is only started at the end of the world. We used the ORM approach in this case by mapping the state of the system to the database table and modifying it in response to the required changes. Finally, we demonstrated how to use the http4s client to test the system as a whole by building an integration test.
The basis for the second project was the "official" Lightbend stack. We looked at how well Akka-HTTP and Akka Persistence play together. We demonstrated that the event-sourced approach allows us...