Raul Junco

@rauljunco.bsky.social

I simplify System Design, and System Design will make you a better Software Engineer. Writing at: https://newsletter.systemdesignclassroom.com/

Data is the most critical part of your infrastructure. Lose your network? That's just downtime. Lose your data? That's game over. Have you ever lost production data?

Bild

My favorite way to handle distributed transactions is using SAGAs. It does not provide true atomicity but helps with: - Eventual Consistency - Compensating Transactions - Scalability - Fault Tolerance

Bild

Nobody told me I would miss my JOINs when I started in microservices. Relational Databases are so good at joining data that we often forget until we miss our JOINs. Breaking the database apart is one of the most complex tasks.

Bild

I can't think of a better Non-Technical skill than learning to negotiate. If you are a: - Freelancer? You’re negotiating your estimates, scope, and payment terms all day. - Employee? You’ve got salary, promotions, and perks on the table. Best book I have ever read on negotiation. 👇

Bild

System design is just a collection of messy trade-offs. • Sql vs NoSql • Consistency vs Availability • Accuracy vs Latency • Strong vs Eventual Consistency • Batch vs Stream Processing • Synchronous vs Asynchronous Processing • Duplication vs Normalization • TCP vs UDP

Bild

Idempotency is underrated and under-implemented.  Too many systems cannot handle retries, turning simple issues into complex failures. Here is a simple way to implement it.

Bild