The design and implementation of distributed and highly concurrent applications is something we do every day at Scalac. The adoption of distributed systems is a trend that is currently growing, and it’s not going to stop. Apart from Kubernetes, Apache Kafka is surely the main reason for this. By Aleksandar Skrbic.
Ingestion of large-scale data, resilience to data loss and corruption, replication, and easily achievable parallelism via consumer groups are some of the main reasons why Kafka is one of the most important tools for building distributed systems.
Functional streams, as an abstraction, are commonly used to elegantly solve problems in the area of concurrency and the processing of unbounded data, making resource safety and CPU utilization the priority.
The article then describes:
- Scala, ZIO and finally Apache Kafka
- ZIO Streams
- ZIO Kafka
- Microservices with ZIO and Kafka
Article makes a good job of explaining what ZIO is and how to use it in combination with ZIO Streams to write purely functional event-driven microservices. I hope that some major advantages of functional streaming libraries presented in this article are enough for you to be able to start introducing them into your projects. Nice one!
[Read More]