Leonidas Vrachnis's Avatar

Leonidas Vrachnis

@lvrach.bsky.social

Principal Engineer @ rudderstack.com Greek living in Leiden Interested in Go, Databases, Distributed systems

66 Followers  |  228 Following  |  6 Posts  |  Joined: 03.11.2024  |  1.8436

Latest posts by lvrach.bsky.social on Bluesky

Conflict-free Database over Virtual File System This time we're going to cover a new implementation of persistent key value store, using Conflict-free Replicated Data Types (CRDTs) to enable multi-process writes. Moreover, this approach enables shi...

Blogged: "Conflict-free Database over Virtual File System" www.bartoszsypytkowski.com/conflict-fre...

18.03.2025 04:26 โ€” ๐Ÿ‘ 4    ๐Ÿ” 3    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
How thinking like a teacher helped me mentor better If you're reading this, you're probably asking yourself how you can better help your mentees.

Have you ever thought how school learning methods apply to your work? ๐Ÿค” Writing a monthly blog exploring these connections! First post: teaching principles in tech mentorship. Come join the ride - I'd love to hear your thoughts! #Mentorship #Engineering #LearningStyles

25.03.2025 17:42 โ€” ๐Ÿ‘ 0    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
IO devices and latency โ€” PlanetScale Take an interactive journey through the history of IO devices, and learn how IO device latency affects performance.

Really neat new blog from Planetscale that includes explanations and interactive visualizations of kinds of storage media and how writes/reads and sequential/random performance is based on physics constraints.

Reminds me of A Bartosz Ciechanowski blog a little bit.

planetscale.com/blog/io-devi...

13.03.2025 18:26 โ€” ๐Ÿ‘ 68    ๐Ÿ” 12    ๐Ÿ’ฌ 5    ๐Ÿ“Œ 1
Preview
Query Engines: Gatekeepers of the Parquet File Format Mainstream query engines do not support reading newer Parquet encodings, forcing systems like DuckDB to default to writing older encodings, thereby sacrificing compression.

New blog post โ€“ Query Engines: Gatekeepers of the Parquet File Format
In this post, Laurens Kuiper argues that we are wasting a lot of bits by not using the Parquet format to its full extent โ€“ a limitation caused by the lack of support for Parquet features in some systems.
duckdb.org/2025/01/22/p...

23.01.2025 08:09 โ€” ๐Ÿ‘ 39    ๐Ÿ” 11    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 1
Preview
Distributed Restate - A first look A first look at distributed highly-available deployments of Restate and the architecture that supports those. We demonstate this through a geo-distributed active/active setup executing an order-proces...

First peek at distributed @restatedev.bsky.social: a database for durable execution.

Distributed setups scale, improve failover, and trade the dependency on persistent disk (eg EBS) with an S3 dependency. Restate replicates events internally to bridge S3's latency gap.
๐Ÿ‘‡
restate.dev/blog/distrib...

06.12.2024 15:13 โ€” ๐Ÿ‘ 32    ๐Ÿ” 8    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 2
Preview
GitHub - linkedin/venice: Venice, Derived Data Platform for Planet-Scale Workloads. Venice, Derived Data Platform for Planet-Scale Workloads. - linkedin/venice

๐Ÿ‘‹ @felixgv.bsky.social .. all Felix is old school LinkedIn and currently runs the Venice project.

06.12.2024 16:50 โ€” ๐Ÿ‘ 9    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
DSQL Vignette: Aurora DSQL, and A Personal Story - Marc's Blog

New blog post, with my personal take on our launch of Amazon Aurora DSQL: brooker.co.za/blog/2024/12...

03.12.2024 17:44 โ€” ๐Ÿ‘ 105    ๐Ÿ” 37    ๐Ÿ’ฌ 3    ๐Ÿ“Œ 5
Dear Sir, You Have Built a Compiler | Rachit Nigam

apparently my post "you have built a compiler" (rachit.pl/post/you-hav...) has spawned a little genre:
- DBs: dx.tips/oops-database
- K8: www.macchaffee.com/blog/2024/yo...
- Erlang: vereis.com/posts/you_bu...

those who fail to learn about systems are doomed to recreate (crappy versions of) them

29.11.2024 06:06 โ€” ๐Ÿ‘ 117    ๐Ÿ” 18    ๐Ÿ’ฌ 6    ๐Ÿ“Œ 3
Post image

new blog post: how at work, we built static IPs for serverless functions via WireGuard VPNs. with some diagrams explaining how container networking works! :D

modal.com/blog/vprox

02.12.2024 21:43 โ€” ๐Ÿ‘ 7    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

7 databases in 7 weeks

cool idea :)

matt.blwt.io/post/7-datab...

01.12.2024 15:15 โ€” ๐Ÿ‘ 105    ๐Ÿ” 12    ๐Ÿ’ฌ 3    ๐Ÿ“Œ 1

Great video

28.11.2024 23:08 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

Single most confusing thing about AWS ever, my AZ us-east-1d may or may not be the same as your us-east-1d

27.11.2024 19:03 โ€” ๐Ÿ‘ 30    ๐Ÿ” 4    ๐Ÿ’ฌ 6    ๐Ÿ“Œ 1

Murat's blog post explores a (the) defining characteristic of distributed systems: partial failure

Detection and mitigation of partial failure is at the core of distributed systems engineering

bsky.app/profile/domi...

27.11.2024 11:00 โ€” ๐Ÿ‘ 2    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 1

did some buffering tests in 10 languages where I ran the equivalent of this code with `./program | grep hello`

```
while True:
print("hello")
sleep(1)
```

In 4 languages (Python, Ruby, C, Perl) nothing gets printed

in the others (Go, C++, JS, Rust, Java, Lua) it prints "hello" repeatedly

27.11.2024 18:27 โ€” ๐Ÿ‘ 222    ๐Ÿ” 20    ๐Ÿ’ฌ 25    ๐Ÿ“Œ 4
Amazon S3 Express One Zone now supports the ability to append data to an object This is a first for Amazon S3: it is now possible to append data to an existing object in a bucket, where previously the only supported operation was to atomically โ€ฆ

Amazon S3 just grew "append"! It's only available for the more expensive, lower latency S3 Express One Zone bucket class but you can now append data to an object up to 10,000 times - previously you could only atomically replace a whole object with an updated version simonwillison.net/2024/Nov/22/...

22.11.2024 04:47 โ€” ๐Ÿ‘ 193    ๐Ÿ” 32    ๐Ÿ’ฌ 6    ๐Ÿ“Œ 11

8. Goodhart's Law: When a measure becomes a target, it ceases to be a good measure
9. Hyrum's Law: With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody.

22.11.2024 07:00 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Hah, I wrote the crypto/rsa comments. We take Hyrum's Law (and backwards compati... | Hacker News

HN noticed a comment where I declare locked in by Hyrum's Law a specific behavior of crypto/rsa, so I wrote a comment with a few more examples. #golang

news.ycombinator.com/item?id=4220...

21.11.2024 09:14 โ€” ๐Ÿ‘ 53    ๐Ÿ” 8    ๐Ÿ’ฌ 5    ๐Ÿ“Œ 0
Post image

Introducing pg_karnak: Transactional schema migration across tenant databases.

We share how we deliver reliable and scalable schema migration for multi-tenant apps, diving deep into Postgres internals - Extension hooks, transaction events and low-level locking.

www.thenile.dev/blog/distrib...

21.11.2024 17:03 โ€” ๐Ÿ‘ 52    ๐Ÿ” 12    ๐Ÿ’ฌ 5    ๐Ÿ“Œ 4

You are right, missed that.

20.11.2024 10:19 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Fair points, regarding 3. Editors like vscode and goland allow you to run tests directly from the editor. You will need to make adjustments for them. It is also convenient to simply run `go test ./...` and now you have to replace this with another script.

20.11.2024 10:13 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Some concerns:
1. Using the Postgres binary installed on the environment, you lose control over the version and installed extensions. 2. Using a shared instance between all tests will make failure isolation weaker
3. The ergonomics of running a separate binary

20.11.2024 08:08 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Thanks, Michael for writing this. Having heavily utilised an ephemeral Postgres instances approach myself. The post inspires me to finally work on some optimisations.

20.11.2024 08:08 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
screenshot of the first page of the blog post

screenshot of the first page of the blog post

New blog post! ๐ŸŽ‰ Testing with Go and PostgreSQL: ephemeral DBs

Letโ€™s say you created a #golang program that needs a DB โ€” you installed PostgreSQL, wrote the Go code, and everything works; great! But how do you best provide PostgreSQL to your automated tests?

michael.stapelberg.ch/posts/2024-1...

19.11.2024 16:18 โ€” ๐Ÿ‘ 12    ๐Ÿ” 3    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
The Case for Shared Storage In this post, Iโ€™ll start off with a brief overview of โ€œshared nothingโ€ vs. โ€œshared storageโ€ architectures in general. This discussion will be a bit abstract and high-level, but the goal is to share wi...

Every day is object storage day!

19.11.2024 18:41 โ€” ๐Ÿ‘ 21    ๐Ÿ” 3    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

SQL injection

19.11.2024 16:10 โ€” ๐Ÿ‘ 354    ๐Ÿ” 32    ๐Ÿ’ฌ 14    ๐Ÿ“Œ 1
How Does DNS Work? A Comprehensive Guide to Domain Name Systems Learn how DNS works, from basic concepts to advanced troubleshooting. Explore DNS records, nameservers, DNSSEC, and essential tools like nslookup and dig.

Sharing my evolving DNS guide! ๐Ÿš€

Started this when I kept hearing 'it's always DNS' without truly understanding what that meant. What began as personal learning has grown into a comprehensive resource that I keep updating as I learn more.

Feedback welcome!

anshumantripathi.com/blog/how-dns...

16.11.2024 18:41 โ€” ๐Ÿ‘ 2    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Posts by Category This site hosts a list of talks from various conferences on the topic of Cloud Native security.

If you're looking for the security talks from Kubecon NA 2024, I've added the abstracts and Youtube embeds to talks.container-security.site/categories/#... .

There's also talks going back to 2016 in case you really want to watch a lot of container security videos!

18.11.2024 19:27 โ€” ๐Ÿ‘ 35    ๐Ÿ” 10    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0
Preview
Testing Distributed Systems Curated list of resources on testing distributed systems

Hello, Bluesky users!

I curate and maintain list of resources on testing distributed systems. You might have seen it before. It's a good one, if I may say so myself.

asatarin.github.io/testing-dist...

19.11.2024 05:26 โ€” ๐Ÿ‘ 198    ๐Ÿ” 48    ๐Ÿ’ฌ 6    ๐Ÿ“Œ 2
Normalize your data unless you have a good reason not to
Follow all the advice from the folks that make Postgres
Note some general SQL eccentricities
Saving your pinkies: you donโ€™t have to write SQL in all caps
NULL is weird
You can make psql more useful
Fix your unreadable output
Clarify ambiguous nulls
Use auto-completion
Lean on backslash shortcuts
Copy to a CSV
Use column shorthands and aliases
Itโ€™s possible that adding an index will do nothing (particularly if itโ€™s misconfigured)
What is an index?
An index isnโ€™t much use for a table with barely any rows in it
When indexing multiple columns, the order matters
If doing prefix matches, use text_pattern_ops
Long-held locks can break your app (even ACCESS SHARE)
What is a lock?
How locks work in Postgres
How this can cause problems
Long-running transactions can be just as bad
JSONB is a sharp knife
JSONB can be slower than normal columns
JSONB is not as self-documenting as a standard table schema
JSONB Postgres types are a bit awkward

Normalize your data unless you have a good reason not to Follow all the advice from the folks that make Postgres Note some general SQL eccentricities Saving your pinkies: you donโ€™t have to write SQL in all caps NULL is weird You can make psql more useful Fix your unreadable output Clarify ambiguous nulls Use auto-completion Lean on backslash shortcuts Copy to a CSV Use column shorthands and aliases Itโ€™s possible that adding an index will do nothing (particularly if itโ€™s misconfigured) What is an index? An index isnโ€™t much use for a table with barely any rows in it When indexing multiple columns, the order matters If doing prefix matches, use text_pattern_ops Long-held locks can break your app (even ACCESS SHARE) What is a lock? How locks work in Postgres How this can cause problems Long-running transactions can be just as bad JSONB is a sharp knife JSONB can be slower than normal columns JSONB is not as self-documenting as a standard table schema JSONB Postgres types are a bit awkward

this blog post is full of practical tips on Postgres:

What I Wish Someone Told Me About Postgres - challahscript.com/what_i_wish_...

19.11.2024 05:34 โ€” ๐Ÿ‘ 11    ๐Ÿ” 3    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Object Storage Is All You Need - Justin Cormack, Docker
YouTube video by CNCF [Cloud Native Computing Foundation] Object Storage Is All You Need - Justin Cormack, Docker

Great talk from Justin Cormack - Object Storage Is All You Need.

Itโ€™s widespread at Grafana Labs - Mimir, Loki, Tempo and Pyroscope all follow the pattern.

youtu.be/ei0wwTy6_G4

17.11.2024 18:29 โ€” ๐Ÿ‘ 49    ๐Ÿ” 12    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

@lvrach is following 20 prominent accounts