After trying Kotlin years ago I quickly realized that you can do a lot more with much less code. It hits the right balance of language features and complexity, so that a lot can be achieved without any frameworks or libraries at all. However, because of good Java-interop, people still use many server frameworks and libraries that are written in Java and for Java. These contain lots of complex code, many dependencies waiting to prove vulnerable (like log4j) and other unnecessary bloat. Moreover, Kotlin type system is stronger than Java’s and thus many modern patterns that Java developers use seem unnecessary when writing in Kotlin.
So, during Christmas time of 2021, Klite was born to prove that a convenient, performant and non-blocking server framework can also be very small and simple to write and debug. It’s also extensible - the framework will never get in your way - you can easily change anything that it does, but basic things are also done right by default, like logging and even transaction handling for async requests using coroutines. And there are zero dependencies!
How is this possible, design details and what features of Kotlin language and type system enable that will be shared during this talk.