Recently, while working on a workshop titled Testing Your Pull Request on #Kubernetes with GKE, and GitHub Actions, I faced twice the same issue: service A needs service B, but service A starts faster than service B, and the system fails. In this post, I want to describe the context of these issues and how I solved them both with the same tool.
A reflective take on how modern systems—from social media to certifications—reward surface-level wins over deep effort. This post explores how we’ve learned to game metrics, optimize for the minimum, and lose sight of meaning in the process. It asks: what happens when the game replaces the goal?
I undertook a thought exercise: how would I go about designing a RPC method when using gRPC?
https://matttproud.com/blog/posts/grpc-method-discipline.html
This is an interesting topic to explore, since gRPC provides building blocks for four major RPC method morphologies: unary, server-side streaming, client-side streaming, and bidirectional streaming. Deceptively I expected the considerations to be few and simple, but they turned out to be far more complex than anticipated.
In sum: requirements matter.
On the criteria to be used in decomposing systems into modules (1972) — https://dl.acm.org/doi/pdf/10.1145/361598.361623
#HackerNews #decomposing #systems #modules #softwareengineering #1972 #ACMpapers #systemdesign
Hearing from an old colleague that your system design scaled and survived for many years is a really nice confirmation.
In this case it was my first multi-process, distributed project based on what I learned from #OpenBSD daemon design and reading #UNIX Network Programming by Stevens, using #SQLite, sockets, select, fork/exec, dropping privileges, passing jobs to distributed workers, and even running on different platforms. Simple, effective, and pretty scalable.
#SystemDesign #ThrowbackThursday
https://taraskovalenko.github.io/posts/saga/
SAGA патерн - управління розподіленими транзакціями в .NET
I’m starting to think that anyone who designs or builds systems that handle data should do a basic bookkeeping course that covers how double entry works.
The accountants managed to work out for us since the 13th Century that if you move money from A to B, both A and B need an audit entry describing the movement each way. Write only - nothing is removed. Yet I don’t see an equivalent teaching in the various system design books, despite this concept being fundamental to any system that needs (financial and non-financial) auditing capabilities.
Computer Science For Beginners
Yihua Zhang explains that while a computer science (CS) degree isn't necessary to become a developer, understanding key CS concepts can be beneficial. It covers topics like computational complexity, data structures, algorithms, and system design, emphasizing their relevance in real-world applications and coding interviews.
#ComputerScience #SoftwareDevelopment #Programming #Algorithms #SystemDesign #DataStructures #TechCareers
Ok, my turn to write an #introduction full of as many hashtags as I can think of.
I am in #infosec for as long as I can remember. My main interests in the subject are #networksecurity, #websecurity, #codereview, and secure #systemdesign. Unfortunately for you (and probably for me too, I don't know at this point) I also have a Ph.D. and I am a huge fan of "The Logic of Scientific Discovery" by Karl Popper.
I also like #movies, I watch a lot of them and I make way too many references, like the one below.
While waiting for my letter from #Hogwarts, I practice my dark arts with #computerscience the only other thing close to magical spells that I know how to cast.