Hello again. Let’s get into it:
Links of the week
Category Theory Illustrated - Functors
“My thesis is that to perceive the world around us, we are going through a bunch of functors that go from more raw “low-level” mental models to more abstract “high-level” ones. For example, our brain creates a functor between the category of raw sensory data that we receive from our senses, to a category containing some basic model of how the world works (one that tells us where are we in space, how many objects are we seeing etc.) Then we are connecting this model to another, more abstract model, which provides us with a higher-level view of the situation that we are in, and so on.“
[…] So, why is a map useful? Well, it obviously has to do with the fact that the points and arrows of the map corresponds to the cities and the roads in the place you are visiting in i.e. due to the very fact that it is a functor, but there is a second aspect as well - maps (or at least those of them that are useful) are simpler to work with than the actual things they represent. For example, road maps are useful, because they are smaller than the territory they represent, so it is much easier to go look up the routes between two given places by following a map, than to actually travel through all them in real life.
Your codebase is a Jenga tower
“Just look at rubular.com – a long-standing website I've used countless times to write regex statements through trial and error (I hate regex). In the 13 years I've written Ruby, this website has not changed (other than the underlying Ruby version).
But only some codebases can be like Rubular. The codebases that pay the bills are under constant scrutiny from those who rely on what they provide. Customers, those damn paying customers, are the most prominent reason why codebases change. We write new code to compete, but that new code often takes on a life of its own.“
A Comprehensive Guide to Structured Logging in Go
“As you can see, there are already several structured logging solutions in the Go ecosystem. However, this wide range of APIs can make it difficult to support logging in a provider-agnostic manner, often necessitating the use of abstractions to avoid coupling the logging implementation to a specific package. The
slog
proposal also addresses this issue by providing a common interface in the standard library that can be implemented by these third-party packages.“
▶ Simulating an Entire Car Engine (yes, it makes noise)
“As the title suggests, this is a physically realistic (or at least, somewhat realistic) internal combustion engine simulation. It also generates audio which I feel is some of the best procedurally generated audio for a V8 engine I've ever heard.“
How Discord stores trillions of messages
“Our data services sit between the API and our ScyllaDB clusters. They contain roughly one gRPC endpoint per database query and intentionally contain no business logic. The big feature our data services provide is request coalescing. If multiple users are requesting the same row at the same time, we’ll only query the database once. The first user that makes a request causes a worker task to spin up in the service. Subsequent requests will check for the existence of that task and subscribe to it. That worker task will query the database and return the row to all subscribers.“
Characterizing Microservice Dependency and Performance: Alibaba Trace Analysis
“This paper got the best paper award at SOCC 2021. The paper conducts a comprehensive study of large scale microservices deployed in Alibaba clusters. They analyze the behavior of more than 20,000 microservices in a 7-day period and profile their characteristics based on the 10 billion call traces collected. They find that:
microservice graphs are dynamic in runtime
most graphs are scattered to grow like a tree
size of call graphs follows a heavy-tail distribution“
Book of the Week
Statistical Consequences of Fat Tails: Real World Preasymptotics, Epistemology, and Applications
Do you have any more links our community should read? Feel free to post them on the comments.
Have a nice week. 😉
Have you read last week's post? Check the archive.