Introduction I am writing a series of short posts showcasing the new features of Golem 1.5 , to be released at the end of April, 2026. The episodes of this series will be short and assume the reader knows what Golem is. Check my other Golem-related posts for more information! Parts released so far: Part 1: Code-first routes Part 2: Webhooks Part 3: MCP Part 4: Node.js compatibility Part 5: Scala…
Introduction I am writing a series of short posts showcasing the new features of Golem 1.5 , to be released at the end of April, 2026. The episodes of this series will be short and assume the reader knows what Golem is. Check my other Golem-related posts for more information! Parts released so far: Part 1: Code-first routes Part 2: Webhooks Part 3: MCP Part 4: Node.js compatibility Part 5: Scala…
Introduction I am writing a series of short posts showcasing the new features of Golem 1.5 , to be released at the end of April, 2026. The episodes of this series will be short and assume the reader knows what Golem is. Check my other Golem-related posts for more information! Parts released so far: Part 1: Code-first routes Part 2: Webhooks Part 3: MCP Part 4: Node.js compatibility Part 5: Scala…
Introduction I am writing a series of short posts showcasing the new features of Golem 1.5 , to be released at the end of April, 2026. The episodes of this series will be short and assume the reader knows what Golem is. Check my other Golem-related posts for more information! Parts released so far: Part 1: Code-first routes Part 2: Webhooks Part 3: MCP Part 4: Node.js compatibility Part 5: Scala…
Introduction I am writing a series of short posts showcasing the new features of Golem 1.5 , to be released at the end of April, 2026. The episodes of this series will be short and assume the reader knows what Golem is. Check my other Golem-related posts for more information! Parts released so far: Part 1: Code-first routes Part 2: Webhooks Part 3: MCP Part 4: Node.js compatibility Part 5: Scala…
Introduction I am writing a series of short posts showcasing the new features of Golem 1.5 , to be released at the end of April, 2026. The episodes of this series will be short and assume the reader knows what Golem is. Check my other Golem-related posts for more information! Parts released so far: Part 1: Code-first routes Part 2: Webhooks Part 3: MCP Part 4: Node.js compatibility Part 5: Scala…
Introduction I am writing a series of short posts showcasing the new features of Golem 1.5 , to be released at the end of April, 2026. The episodes of this series will be short and assume the reader knows what Golem is. Check my other Golem-related posts for more information! Parts released so far: Part 1: Code-first routes Part 2: Webhooks Part 3: MCP Part 4: Node.js compatibility Part 5: Scala…
Introduction I am writing a series of short posts showcasing the new features of Golem 1.5 , to be released at the end of April, 2026. The episodes of this series will be short and assume the reader knows what Golem is. Check my other Golem-related posts for more information! Parts released so far: Part 1: Code-first routes Part 2: Webhooks Part 3: MCP Part 4: Node.js compatibility Part 5: Scala…
Introduction I am writing a series of short posts showcasing the new features of Golem 1.5 , to be released at the end of April, 2026. The episodes of this series will be short and assume the reader knows what Golem is. Check my other Golem-related posts for more information! Parts released so far: Part 1: Code-first routes Part 2: Webhooks Part 3: MCP Part 4: Node.js compatibility Part 5: Scala…
Introduction I am writing a series of short posts showcasing the new features of Golem 1.5 , to be released at the end of April, 2026. The episodes of this series will be short and assume the reader knows what Golem is. Check my other Golem-related posts for more information! Parts released so far: Part 1: Code-first routes Part 2: Webhooks Part 3: MCP Part 4: Node.js compatibility Part 5: Scala…
Introduction I am writing a series of short posts showcasing the new features of Golem 1.5 , to be released at the end of April, 2026. The episodes of this series will be short and assume the reader knows what Golem is. Check my other Golem-related posts for more information! Parts released so far: Part 1: Code-first routes Part 2: Webhooks Part 3: MCP Part 4: Node.js compatibility Part 5: Scala…
Introduction I am writing a series of short posts showcasing the new features of Golem 1.5 , to be released at the end of April, 2026. The episodes of this series will be short and assume the reader knows what Golem is. Check my other Golem-related posts for more information! Parts released so far: Part 1: Code-first routes Part 2: Webhooks Part 3: MCP Part 4: Node.js compatibility Part 5: Scala…
Introduction I am writing a series of short posts showcasing the new features of Golem 1.5 , to be released at the end of April, 2026. The episodes of this series will be short and assume the reader knows what Golem is. Check my other Golem-related posts for more information! Parts released so far: Part 1: Code-first routes Part 2: Webhooks Part 3: MCP Part 4: Node.js compatibility Part 5: Scala…
Introduction I am writing a series of short posts showcasing the new features of Golem 1.5 , to be released at the end of April, 2026. The episodes of this series will be short and assume the reader knows what Golem is. Check my other Golem-related posts for more information! Parts released so far: Part 1: Code-first routes Part 2: Webhooks Part 3: MCP Part 4: Node.js compatibility Part 5: Scala…
Introduction I am writing a series of short posts showcasing the new features of Golem 1.5 , to be released at the end of April, 2026. The episodes of this series will be short and assume the reader knows what Golem is. Check my other Golem-related posts for more information! Parts released so far: Part 1: Code-first routes Part 2: Webhooks Part 3: MCP Part 4: Node.js compatibility Part 5: Scala…
Introduction I am writing a series of short posts showcasing the new features of Golem 1.5 , to be released at the end of April, 2026. The episodes of this series will be short and assume the reader knows what Golem is. Check my other Golem-related posts for more information! Parts released so far: Part 1: Code-first routes Part 2: Webhooks Part 3: MCP Part 4: Node.js compatibility Part 5: Scala…
Introduction I am writing a series of short posts showcasing the new features of Golem 1.5 , to be released at the end of April, 2026. The episodes of this series will be short and assume the reader knows what Golem is. Check my other Golem-related posts for more information! Parts released so far: Part 1: Code-first routes Part 2: Webhooks Part 3: MCP Part 4: Node.js compatibility Part 5: Scala…
Introduction Coding agents became the new way of writing software for many of us; even though I was skeptical about this for a long time, in the past few months all my code was written by agents, with productivity I had never experienced before. The whole ecosystem is changing extremely fast, and people are trying to figure out what the best set of tools and workflows are to work efficiently in…
Golem is an agent-native platform that provides high level of fault-tolerance and exactly-once (or in some cases, at-least once) semantics automatically without requiring to write any code for persisting and recovering state. We wrote several blog posts, demos and live coding sessions showing how this looks like. Yesterday I've posted about writing a Golem application in Rust , and a week…
The previous version of Golem, 1.3 made a big leap from earlier versions by introducing code-first agents . We could now write stateful, persistent entities called agents by simply defining TypeScript classes with some annotations, while previously it required learning the WebAssembly interface definition language and using that to first define our application's public interface, then figure…
Introduction In the previous post about Golem 1.3 I explained that the new release comes with a new JavaScript engine. This engine fixes some important bugs and allows us to move faster and provide a better JS/TS experience - but it comes with a price. One of the tradeoffs was that building an actual WebAssembly component containing this engine requires the Rust toolchain - we are generating…
As we are rapidly approaching the release data for Golem 1.3, a major update, I'm going to publish a series of small posts talking about some of the technical details of this new release. In this first one, let's talk about the new JavaScript engine . JavaScript support in previous versions In previous Golem versions we tried to support JavaScript (and TypeScript) using the "official"…
I'm on the last LambdaConf at the moment, and exactly a year ago I gave a talk about Golem on LambdaConf 2024 . Someone asked me what happened with Golem since then? So many things I could not properly answer. So here is a short summary of one year amount of Golem development, from LambdaConf 2024 to LambdaConf 2025. We had a Golem Hackathon on last LambdaConf, and had a fresh release of…
Introduction When talking about Golem or other durable execution engines the most important property we are always pointing out is that by making the application durable , it can automatically survive various failure scenarios. In case of a transient error, or some other external event such as updating or restarting the underlying servers durable programs can survive by seamlessly continuing their…
Introduction MoonBit , a new programming language has been open sourced a few weeks ago - see this blog post . MoonBit is an exciting modern programming language that natively supports WebAssembly, including the component model - this makes it a perfect fit for writing applications for Golem Cloud . In this post I'm exploring the current state of MoonBit and whether it is ready for writing…
Golem always considered Zig a supported language, but until now the only documented way to use it was to compile a program with a single main function into a core WebAssembly module and then wrap that as a component that can be uploaded to Golem for execution. This is very limiting, as in order to take full advantage of Golem (and any other part of the evolving WASM Component Model ecosystem ) a…
Introduction A few weeks ago we have added a new set of host functions to Golem , which allow programs running on this platform to control some of the persistency and transactional behavior of the executor. You can learn about these low-level functions on the corresponding learn page . These exported functions allow a lot of control but they are very low level, and definitely not pleasant to use…
This article was originally posted at the Golem Cloud Blog Golem Cloud's first developer preview has been unveiled in August , and just a month ago, we released an open-source version of Golem . Workers, the fundamental primitive in Golem, expose a typed interface that can be invoked through the REST API or the command line tools, but until today, calling a worker from another worker was…
Introduction This is the first part of a series of blog posts about my serialization library, desert . I also gave an overview of this library on Functional Scala 2022 - you can check the talk on YouTube if interested . In this post I'm going to give an overview of the features this serialization library provides, and then going to dive into the details of how it supports evolving data types.…
My talk at Functional Scala 2023 about my experience with generating client libraries from OpenAPI specifications, and an alternative code-first approach using ZIO Http .
Introduction Making the compiler to automatically derive implementations of a type class for your custom algebraic data types is a common technique in programming languages. Haskell, for example, has built-in syntax for it: data Literal = StringLit String | BoolLit Bool deriving ( Show ) and Rust is using macros instantiated by annotations to do the same: #[deriving( Debug )] enum Literal {…
We at Golem Cloud built our first developer preview on top of the ZIO ecosystem, including ZIO Http for defining and implementing our server's REST API. By using ZIO Http we immediately had the ability to call our endpoints using endpoint client s, which allowed us to develop the first version of Golem's CLI tool very rapidly. Although very convenient for development, using a CLI tool…
Introduction With one of our clients, we were working on a chain of services responsible for processing some logs coming from a Kafka topic, partition them by some properties like user and date, infer and aggregate the log schema and eventually store the partitioned data in a different format. The details of this use case are not important for understanding this post, in which I'm going to…
Originally posted at the Ziverge blog . Andrea Peruffo recently published a blog post on the Lightbend blog about how they migrated a kubectl plugin from Golang to Scala using the Fabric8 Kubernetes client and a few Scala libraries. This is a perfect use case for the zio-k8s library announced two weeks ago , so we decided to write this post demonstrating how to implement the same example using the…
A few years ago I wrote a post about how I refactored one of our internal tools at Prezi . This command line tool was able to discover a set of AWS resources and present them in a nice human readable way. The primary motivation at that time was to introduce circuit breaking to survive AWS API rate limits. I have recently published a set of libraries, zio-aws , and thought it would be interesting…
I have recently published a set of libraries, zio-aws , aiming to provide a better interface for working with AWS services from ZIO applications. For more information about how the ZIO interface works and how to get started with these libraries, read the repository's README. In this post, I will focus on how these libraries are generated from the schema provided by the AWS Java SDK v2 .…
Blog post series Part 1 - type level programming Part 2 - akka streams with cats effect Part 3 - effect abstraction and ZIO Part 4 - simplified redesign Intro In Part 1 I described how the advanced type level programming techniques can be used to describe the execution of system processes. It was both a good playground to experiment with these and the result has been proven useful as we started to…
Blog post series Part 1 - type level programming Part 2 - akka streams with cats effect Part 3 - effect abstraction and ZIO Part 4 - simplified redesign Intro The first post introduced the prox library and demonstrated the advanced type level programming techniques it uses. Then in the second part of this series we experimented with replacing the streaming library from fs2 to Akka Streams . In…
Blog post series Part 1 - type level programming Part 2 - akka streams with cats effect Part 3 - effect abstraction and ZIO Part 4 - simplified redesign Intro In the previous post we have seen how prox applies advanced type level programming techniques to express executing external system processes. The input and output of these processes can be connected to streams . The current version of prox…
Blog post series Part 1 - type level programming Part 2 - akka streams with cats effect Part 3 - effect abstraction and ZIO Part 4 - simplified redesign Intro I started writing prox at the end of 2017 for two reasons. First, I never liked any of the existing solutions for running external processes and capture their input/output streams. And I just returned from the scala.io conference full…
At Prezi , we have an internal tool called prezidig for discovering AWS resources. I like it a lot so I was quite annoyed recently that it always fails with a throttling exception because of our increased use of the AWS API. It made it completely unusable, so I decided to try to fix this. Then I decided to write the story in this blog post, as the steps I had to made to achieve the results I aimed…
Intro A few weeks ago I discovered Visual Studio Code and started using it for some of my work. (Note: I'm using multiple editors/IDEs all the time, based on the task; Emacs, Sublime, Atom, IntelliJ, VS, etc.) So far Code is my favourite among the set of similar editors, such as Atom. I was pleasently surprised how well it works with its integrated OmniSharp plugin on bari's…