# nomisRev

Personal blog to share some snippets, thoughts, blogs or interessting discussion from Kotlin Slack

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Opinionated Ktor Services

DevFeed: [Opinionated Ktor Services](<https://devfeed.tech/articles/opinionated-ktor-services-25518.md>)

Original publisher: [Read original article](<http://nomisrev.github.io/opinionated-ktor-services/>)

Author: Simon Vergauwen

Published: 2026-05-21T00:00:00Z

Content type: opinion

Language: en

Sources: [nomisRev](<https://devfeed.tech/sources/nomisrev.md>)

Topics: [Ktor](<https://devfeed.tech/topics/ktor.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [conference](<https://devfeed.tech/tags/conference.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlinconf](<https://devfeed.tech/tags/kotlinconf.md>), [ktor](<https://devfeed.tech/tags/ktor.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [opinions](<https://devfeed.tech/tags/opinions.md>), [services](<https://devfeed.tech/tags/services.md>), [talk](<https://devfeed.tech/tags/talk.md>)

### AI overview

The author describes a KotlinConf 2026 talk about using Ktor and the Kotlin ecosystem to build robust, maintainable, and scalable services. The talk presents the author's opinions on structuring Ktor services and choosing libraries, based on experience with teams.

### Source excerpt

Today I gave a talk at KotlinConf 2026 in Munich about "Opinionated Ktor Services". In this talk, I shared my experience and opinions on how to build robust, maintainable, and scalable services using Ktor and the Kotlin ecosystem.

## Arrow 2.0's Trajectory

DevFeed: [Arrow 2.0's Trajectory](<https://devfeed.tech/articles/arrow-2-0-s-trajectory-25509.md>)

Original publisher: [Read original article](<http://nomisrev.github.io/arrows-2-0-trajectory/>)

Author: Simon Vergauwen

Published: 2023-04-16T00:00:00Z

Content type: opinion

Language: en

Sources: [nomisRev](<https://devfeed.tech/sources/nomisrev.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Library](<https://devfeed.tech/topics/library.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [interoperability](<https://devfeed.tech/topics/interoperability.md>), [Java](<https://devfeed.tech/topics/java.md>), [Scala](<https://devfeed.tech/topics/scala.md>)

Tags: [arrow](<https://devfeed.tech/tags/arrow.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [interoperability](<https://devfeed.tech/tags/interoperability.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [library](<https://devfeed.tech/tags/library.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [oss](<https://devfeed.tech/tags/oss.md>), [scala](<https://devfeed.tech/tags/scala.md>)

### AI overview

A presentation transcription about Arrow's 10-year history, its trajectory toward version 2.0, functional programming in Kotlin, ecosystem cohesion, evolving APIs, and challenges faced by open-source projects.

### Source excerpt

This blog post is an improved version of the transcription of the presentation I gave at KotlinConf 2023. It discusses the 10-year history of Arrow, all the way from the first commit to the current state of the library. It also discusses the future of Functional Programming in Kotlin, and the challenges OSS projects face.

## Zero downtime deployment with Arrow and Ktor Native

DevFeed: [Zero downtime deployment with Arrow and Ktor Native](<https://devfeed.tech/articles/zero-downtime-deployment-with-arrow-and-ktor-native-25515.md>)

Original publisher: [Read original article](<http://nomisrev.github.io/graceful-resource-handling-using-structured-concurrency-in-kotlin/>)

Author: Simon Vergauwen

Published: 2023-02-16T00:00:00Z

Content type: tutorial

Language: en

Sources: [nomisRev](<https://devfeed.tech/sources/nomisrev.md>)

Topics: [Ktor](<https://devfeed.tech/topics/ktor.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [zero downtime deployment](<https://devfeed.tech/topics/zero-downtime-deployment.md>), [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>)

Tags: [concurrency](<https://devfeed.tech/tags/concurrency.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [ktor](<https://devfeed.tech/tags/ktor.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [resource](<https://devfeed.tech/tags/resource.md>), [structured-concurrency](<https://devfeed.tech/tags/structured-concurrency.md>), [structuredconcurrency](<https://devfeed.tech/tags/structuredconcurrency.md>), [zero-downtime-deployment](<https://devfeed.tech/tags/zero-downtime-deployment.md>)

### AI overview

A webinar explains zero-downtime deployment for functional microservices using Ktor and Kubernetes. It also covers structured concurrency, Arrow's Resource DSL, and KotlinX Coroutines for resource safety and complex use cases.

### Source excerpt

Webinar with Anton Arhipov on functional microservices with Ktor and Kubernetes about zero-downtime deployments.

## Graceful Shutdown with Structured Concurrency

DevFeed: [Graceful Shutdown with Structured Concurrency](<https://devfeed.tech/articles/graceful-shutdown-with-structured-concurrency-25516.md>)

Original publisher: [Read original article](<http://nomisrev.github.io/grateful-shutdown-with-structured-concurrency/>)

Author: Simon Vergauwen

Published: 2022-11-24T00:00:00Z

Content type: article

Language: en

Sources: [nomisRev](<https://devfeed.tech/sources/nomisrev.md>)

Topics: [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>), [Processes](<https://devfeed.tech/topics/processes.md>)

Tags: [applications](<https://devfeed.tech/tags/applications.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [parallel](<https://devfeed.tech/tags/parallel.md>), [resource](<https://devfeed.tech/tags/resource.md>), [structured-concurrency](<https://devfeed.tech/tags/structured-concurrency.md>), [structuredconcurrency](<https://devfeed.tech/tags/structuredconcurrency.md>)

### AI overview

This talk explains how structured concurrency can help reason about graceful application shutdown, concurrency, and parallel processes. It discusses issues that can arise when applications do not shut down gracefully.

### Source excerpt

In the modern world we often need to make strong guarantees about how our applications terminate; Structured Concurrency gives us a powerful tool to reason about concurrency, parallel processes and how they relate to each other.

## Using KotlinX Flow for Functional Data Pipelines

DevFeed: [Using KotlinX Flow for Functional Data Pipelines](<https://devfeed.tech/articles/functional-flowing-25513.md>)

Original publisher: [Read original article](<http://nomisrev.github.io/functional-flowing/>)

Author: Simon Vergauwen

Published: 2022-11-24T00:00:00Z

Content type: article

Language: en

Sources: [nomisRev](<https://devfeed.tech/sources/nomisrev.md>)

Topics: [Streaming](<https://devfeed.tech/topics/streaming.md>), [data](<https://devfeed.tech/topics/data.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [data](<https://devfeed.tech/tags/data.md>), [flow](<https://devfeed.tech/tags/flow.md>), [functional](<https://devfeed.tech/tags/functional.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlinx](<https://devfeed.tech/tags/kotlinx.md>), [pipelines](<https://devfeed.tech/tags/pipelines.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [talk](<https://devfeed.tech/tags/talk.md>)

### AI overview

A talk explains how KotlinX Flow can be used to describe functional programs and build efficient streaming pipelines for transforming and manipulating data.

### Source excerpt

KotlinX's Flow data type is extremely powerful, and offers an API that is quite familiar for functional programmers. This talk will showcase how we can leverage KotlinX Flow to describe powerful programs, and build pipelines to transform and manipulate data in an efficient streaming way.

## Building applications with Kotlin and Arrow.kt in style

DevFeed: [Building applications with Kotlin and Arrow.kt in style](<https://devfeed.tech/articles/building-applications-with-kotlin-and-arrow-kt-in-style-25510.md>)

Original publisher: [Read original article](<http://nomisrev.github.io/building-applications-with-kotlin-and-arrow.kt-in-style/>)

Author: Simon Vergauwen

Published: 2022-05-31T00:00:00Z

Content type: tutorial

Language: en

Sources: [nomisRev](<https://devfeed.tech/sources/nomisrev.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Ktor](<https://devfeed.tech/topics/ktor.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Microservices](<https://devfeed.tech/topics/microservices.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>)

Tags: [arrow](<https://devfeed.tech/tags/arrow.md>), [continuation](<https://devfeed.tech/tags/continuation.md>), [database](<https://devfeed.tech/tags/database.md>), [effect](<https://devfeed.tech/tags/effect.md>), [either](<https://devfeed.tech/tags/either.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [ktor](<https://devfeed.tech/tags/ktor.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [suspend](<https://devfeed.tech/tags/suspend.md>), [webinar](<https://devfeed.tech/tags/webinar.md>)

### AI overview

A webinar with Anton Arhipov demonstrates an end-to-end functional microservices workflow using Kotlin, Ktor, and Arrow, including request handling, database interaction, and response generation.

### Source excerpt

Webinar with Anton Arhipov on functional microservices with Ktor and Arrow.

## Exploring Kotlin's Context Receivers

DevFeed: [Exploring Kotlin's Context Receivers](<https://devfeed.tech/articles/exploring-kotlin-s-context-receivers-25511.md>)

Original publisher: [Read original article](<http://nomisrev.github.io/context-receivers/>)

Author: Simon Vergauwen

Published: 2022-02-17T00:00:00Z

Content type: article

Language: en

Sources: [nomisRev](<https://devfeed.tech/sources/nomisrev.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [ide](<https://devfeed.tech/topics/ide.md>), [context](<https://devfeed.tech/topics/context.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [dsl](<https://devfeed.tech/tags/dsl.md>), [effect](<https://devfeed.tech/tags/effect.md>), [extension-function](<https://devfeed.tech/tags/extension-function.md>), [fp](<https://devfeed.tech/tags/fp.md>), [function](<https://devfeed.tech/tags/function.md>), [ide](<https://devfeed.tech/tags/ide.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [scope-functions](<https://devfeed.tech/tags/scope-functions.md>), [suspend](<https://devfeed.tech/tags/suspend.md>)

### AI overview

A tutorial on Kotlin Context Receivers, introduced as a preview in Kotlin 1.6.20-M1. It explains how additional receivers work, how the compiler handles them, and how they can support scope-based programming patterns such as effect handlers and logging contexts.

### Source excerpt

Last week a long awaited feature was released as a preview in Kotlin 1.6.20-M1. In this blogpost we're going to explore what Context Receivers are, and some benefits and patterns they'll enable. To try it out in your IDE, follow this guide

## Kotlin's inline and suspend features

DevFeed: [Kotlin's inline and suspend features](<https://devfeed.tech/articles/my-favorite-kotlin-feature-25517.md>)

Original publisher: [Read original article](<http://nomisrev.github.io/inline-and-suspend/>)

Author: Simon Vergauwen

Published: 2022-01-18T00:00:00Z

Content type: article

Language: en

Sources: [nomisRev](<https://devfeed.tech/sources/nomisrev.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [inlining](<https://devfeed.tech/topics/inlining.md>), [async](<https://devfeed.tech/topics/async.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>)

Tags: [async](<https://devfeed.tech/tags/async.md>), [callback](<https://devfeed.tech/tags/callback.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [continuation](<https://devfeed.tech/tags/continuation.md>), [dsl](<https://devfeed.tech/tags/dsl.md>), [function](<https://devfeed.tech/tags/function.md>), [hof](<https://devfeed.tech/tags/hof.md>), [inlining](<https://devfeed.tech/tags/inlining.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [suspend](<https://devfeed.tech/tags/suspend.md>)

### AI overview

This article explains Kotlin's inline feature and suspend functions, focusing on how their combination supports efficient higher-order functions and imperative code for asynchronous workflows. It also describes compiler checks for suspending calls.

### Source excerpt

Over the last several years I've seen many discussions on Kotlin's features. Nullability is always a very high ranked one. I like it, but it's definitely not my favorite feature.

## Functional programming in Kotlin with Arrow.kt

DevFeed: [Functional programming in Kotlin with Arrow.kt](<https://devfeed.tech/articles/functional-programming-in-kotlin-with-arrow-kt-25514.md>)

Original publisher: [Read original article](<http://nomisrev.github.io/functional-programming-in-kotlin-with-arrow-kt/>)

Author: Simon Vergauwen

Published: 2021-12-05T00:00:00Z

Content type: article

Language: en

Sources: [nomisRev](<https://devfeed.tech/sources/nomisrev.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Ktor](<https://devfeed.tech/topics/ktor.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [circuit](<https://devfeed.tech/tags/circuit.md>), [effect](<https://devfeed.tech/tags/effect.md>), [either](<https://devfeed.tech/tags/either.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [ktor](<https://devfeed.tech/tags/ktor.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [programming](<https://devfeed.tech/tags/programming.md>), [suspend](<https://devfeed.tech/tags/suspend.md>), [validation](<https://devfeed.tech/tags/validation.md>), [webinar](<https://devfeed.tech/tags/webinar.md>)

### AI overview

A webinar discusses functional microservices with Ktor and Arrow in Kotlin, including retries with circuit breakers and schedulers, validation, optics, and analysis.

### Source excerpt

Webinar with Anton Arhipov & Alejandro Serrano about functional microservices with Ktor and Arrow.

## Continuation\<R, A\> in Kotlin

DevFeed: [Continuation\<R, A\> in Kotlin](<https://devfeed.tech/articles/continuation-r-a-in-kotlin-25512.md>)

Original publisher: [Read original article](<http://nomisrev.github.io/continuation-monad-in-kotlin/>)

Author: Simon Vergauwen

Published: 2021-11-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [nomisRev](<https://devfeed.tech/sources/nomisrev.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [continuation](<https://devfeed.tech/tags/continuation.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [effect](<https://devfeed.tech/tags/effect.md>), [either](<https://devfeed.tech/tags/either.md>), [exception](<https://devfeed.tech/tags/exception.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-standard-library](<https://devfeed.tech/tags/kotlin-standard-library.md>), [monad](<https://devfeed.tech/tags/monad.md>), [suspend-function](<https://devfeed.tech/tags/suspend-function.md>), [syntax](<https://devfeed.tech/tags/syntax.md>)

### AI overview

A Kotlin tutorial introduces Continuation Passing Style and typed computations that can represent either a successful result or a typed failure. It develops an Effect type implemented as a suspend function and demonstrates a DSL for validation and file-reading examples.

### Source excerpt

Coroutines is one of the most liked features in Kotlin. Most people are familiar with the KotlinX Coroutines implementation, and many are also familiar with suspendCoroutine from the Kotlin Standard Library and then have also come across Continuation.