23.04.2024 / By Bartosz Budnik

Kalix tutorial: Building invoice application

Scala is well-known for its great functional scala libraries which enable the building of complex applications designed for streaming data or providing reliable solutions with effect systems. However, there are not that many solutions which we could call frameworks to provide every necessary tool and out-of-the box integrations with databases, message brokers, etc. In 2022, Kalix was […]

17.01.2024 / By Jakub Czuchnowski

Getting started with ZIO HTTP

ZIO HTTP is a library for building HTTP applications in Scala. It started as a ZIO wrapper over the Netty library, developed at Dream11 for their high throughput, low latency services. Revealed in 2021 at Functional Scala, it made a great impression on the attendants not only because of the great type-safe DSL but also […]

07.11.2023 / By Michał Szulczewski

AI for programmers

Introduction – towards the using AI in software develompent With the growing discussions about the integration of artificial intelligence (AI) into software development via tools like ChatGPT and Github Copilot, I have explored these AI-driven coding aids for some time. Initially, I engaged with Tabnine, a tool similar in function to Github Copilot, albeit a […]

07.09.2023 / By Howard Gonzalez

TestContainers in Scala: Use Integration Tests for building your services

TL;DR Integration tests are frequently seen as the most expensive tests in most environments. The reason is that they usually require a higher level of preparation and procedures to make them appropriate for your particular infrastructure dependencies.  In addition, the time invested to make them work properly on the developer’s continuous integration/development environment is not […]

05.09.2023 / By Daria Karasek

Scala 3 Data Transformation Library: Automating Data Transformations with ducktape

In the ever-evolving landscape of software development, there are tasks that, while necessary, often lack the thrill of innovation. One such task involves managing data transformations, a critical aspect across various domains. While JSON APIs serve as a prime example where such transformations are crucial, the focus of this discussion transcends JSON and centers on […]

29.06.2023 / By Jorge Vasquez

How to implement streaming microservices with ZIO 2 and Kafka

In this article we will cover the basics of ZIO, ZIO Streams, and finally, the process of implementing streaming microservices using functional programming techniques.

15.06.2023 / By Jorge Vasquez

How to write a (completely lock-free) concurrent LRU Cache with ZIO STM

Writing concurrent data structures using traditional tools - just like everything else under java.util.concurrent - is generally very complicated. So, in this article, we are going to see how ZIO STM can make our lives a lot easier when it comes to writing concurrent data structures - such as a concurrent LRU Cache - in a completely lock-free fashion that is a lot simpler to reason about.

13.03.2023 / By Jaroslav Regec

Why Scala?

Introduction I am a Scala developer who had been working with Java and occasionally Javascript / Typescript for a few years before I transitioned to Scala and fell in love with programming all over again. I am currently working on a huge project for an international company that consists of many complex services written in […]

03.03.2023 / By Jaroslav Regec

ZIO SQL: Type-safe SQL for ZIO applications

This article was inspired by a great blog post by Adam Warski, who wrote a comparison of Slick, Doobie, Quill and ScalikeJDBC a few years ago. As ZIO SQL just had its first non-production release, I wanted to add ZIO SQL to the mix and see how it compares to others. Therefore, in the Tour […]

09.01.2023 / By András Kramer

How to learn ZIO? (And Functional Programming)

Suppose you are a Scala developer who has decided to learn ZIO. Maybe you’ve heard that it’s the future of Scala and that every Scala developer will be using it in a couple of years. Maybe you have listened to an interesting talk about how it can solve hard problems in a very straightforward and […]