Mitch's Blog

Using sccache to speedup Rust builds in Docker

Software Development

Lately I've become quite a fan of Rust, a modern programming language with a focus on memory safety. I'm using it in different projects, mostly for it's great speed and low resource usage compared to e.g. Python or Node.

In contrast to scripting languages, all Rust applications have to be compiled before they can be executed. This is a process that takes some time, depending on the size of the app and the number of dependencies.

During development, this isn't an issue thanks to local caching and incremental compilation, which allows the compiler to only re-compile what has changed since the last run.

For my web applications, I use Kubernetes and Docker images for deployment, which means I have to build my applications using Docker as well. In this case, these tricks won't help us.

Vendoring dependencies

Software Development

Nowadays, large software projects can have tons of dependencies. As customers require solutions faster than ever, the software development cycle got reduced from years (back when we used CDs) to hours: At my last job, we even deployed new versions of the software multiple times per day. Because of this, developers often have to integrate third-party (open source) libraries into their code.

Event Sourcing mit Python

Software Development

In einem vorherigen Beitrag habe ich bereits über das Thema Event Sourcing geschrieben. Heute möchte ich eine konkrete mögliche Implementierung zeigen.

Event Sourcing: Eine kurze Einleitung

Software Development

Für ein größeres Kunden-Projekt beschäftige ich mich momentan sehr viel mit dem Konzept des Event Sourcing / der Event-driven Architecture. Dieses Konzept beschreibt einen Ansatz, wie man Änderungen an Daten in einem (meist verteilten[^1]) Computersystem aufzeichnen und verarbeiten kann. Ich schreibe diesen Artikel primär als Übung und Vertiefung, da man ein Thema erst wirklich dann versteht, wenn man es auch selbst erklären kann.