October 4, 2019

Weekend long read suggestions 2019/40

  • Application Layering - A Pattern for Extensible Elixir Application Design

    Excellent and comprehensive piece from Aaron Renner. His article is very welcome, especially as a newcomers pouring into Elixir and looking for guidance on how to structure their projects (standard documentaion is quite good though). He promotes that code should be broken into multiple layers, going deeper than just contexts. He also covers benefits of doing so, such as ability to replace implementation without breaking things, easier testability etc. Which some will sound familir if you are coming from microservices. In the nutshell – encapsulate responsibilities into smallest reasonable modules/blocks.

  • sloop - Kubernetes History Visualization

    Very interesting project from Slasforce to help with troubleshooting Kubernetes. It records changes to cluster. This allows for inspecting resources, which are no longer running (or have been modified).

  • When TCP sockets refuse to die

    Marek from Cloudflare takes us through sometimes overlooked corners of handling timeouts in TCP. Especially when TCP_USER_TIMEOUT is in effect and when not.

  • How to work with Postgres in Go

    Very nicely written article about best practices for using Postgres from your Go applications. Artemiy shares couple gems clearly learned durig running apps in production. For example how pgx handles OIDs mapping (spoiler – it will queiry them with every connection if you are not careful).

  • Simple Go project layout with modules

    Another “best current pracites” post for golang. Eli shares his recipe for well structured golang project. Related article is Ultimate Setup for Your Next Golang Project by Martin Heinz.

  • Greg Young — A Decade of DDD, CQRS, Event Sourcing

    A bit older (2016) video recording of Greg’s keynote at Domain-Driven Design Europe conference. CQRS and Event Sourcing is becoming the thing lately. And Greg’s video is a good into, if you need to get somebody in the team started with the whole concept and terminology.

  • A non computer-science bonus – Punching Water So Hard LIGHT Comes Out - Sonoluminescence