Software Architecture & Engineering

Posts about best practices in developing high-performance software for critical scenarios.

The where keyword in Rust

The where keyword in Rust is used to declare type constraints in a clearer and more readable way.

2025-01-08 · 3 min · 463 words · 

Performance: FFI (Foreign Function Interface)

Foreign Function Interface (FFI) is a way for programs written in one language to communicate with libraries or functions written in other languages.

2025-01-08 · 3 min · 593 words · 

Performance: N+1 query problems

In short, an N+1 query problem occurs when for each row returned in an initial query (to a sql database for example) your application needs to perform a second query to retrieve additional data from another table. Let's see what its implications are and how to avoid this problem...

2024-04-11 · 3 min · 453 words · 

An Introduction to gRPC

gRPC (recursively stands for "gRPC Remote Procedure Call") is a framework released by Google in 2015 that uses HTTP2 for its transport layer and Protobuf (Protocol Buffer) both as its IDL (Interface Description Language) for defining its contracts, services, and messages, as well as the serialization protocol for data transport (a binary serialization in this case).

2024-03-08 · 3 min · 499 words · 

Serialization: JSON vs Protobuf

This exercise aims to facilitate the understanding of the binary serialization method of protobuf by comparing the storage density of information with the text/json format.

2021-03-28 · 6 min · 1126 words · 

Hello gRPC in Rust

Continuing with our series of Hello World! gRPC implementations, we will now implement our Greeter service (server & client) in Rust using the Tonic library, which is part of the Rust Tokio stack.

2021-03-14 · 1 min · 197 words ·