From RPC to transactions and durable executions
(pramodb.com)
I spent some time reading about “Durable Execution Engines” (eg: Temporal) and explored possible connections to earlier concepts like database transactions, distributed transactions, and building RPC/Microservice based systems in a fault tolerant manner. In this post I’ll try to summarize some of my learnings. How useful it is will depend on how much of this you already know! Among other things, I relied on these great overviews: The Modern Transactional Stack (by some a16z folks) and What is Durable Execution?.
I spent some time reading about “Durable Execution Engines” (eg: Temporal) and explored possible connections to earlier concepts like database transactions, distributed transactions, and building RPC/Microservice based systems in a fault tolerant manner. In this post I’ll try to summarize some of my learnings. How useful it is will depend on how much of this you already know! Among other things, I relied on these great overviews: The Modern Transactional Stack (by some a16z folks) and What is Durable Execution?.
Self-Hosting Moose with Docker Compose, Redis, Temporal, Redpanda and ClickHouse
(fiveonefour.com)
Deploying a Moose application with all its dependencies can be challenging and time-consuming. You need to properly configure multiple services, ensure they communicate with each other, and manage their lifecycle.
Deploying a Moose application with all its dependencies can be challenging and time-consuming. You need to properly configure multiple services, ensure they communicate with each other, and manage their lifecycle.
Microservices are a tax your startup probably can't afford
(nexo.sh)
Why splitting your codebase too early can quietly destroy your team’s velocity — and what to do instead.
Why splitting your codebase too early can quietly destroy your team’s velocity — and what to do instead.
Agent Mesh for Enterprise Agents
(solo.io)
From mainframes to microservices, enterprises have evolved their software architectures to meet growing demands for scalability, flexibility, and adaptability. Today’s reality demands more than just distribution or decomposition. In a world of real-time market shifts and ever-rising customer expectations, businesses need systems that can reason, adapt, and act on their own. This is the promise of agentic systems.
From mainframes to microservices, enterprises have evolved their software architectures to meet growing demands for scalability, flexibility, and adaptability. Today’s reality demands more than just distribution or decomposition. In a world of real-time market shifts and ever-rising customer expectations, businesses need systems that can reason, adapt, and act on their own. This is the promise of agentic systems.
Why I'm No Longer Talking to Architects About Microservices
(container-solutions.com)
It happened again last week. I was at an architecture review meeting when a fellow architect eagerly started another debate about *microservices*. Within minutes, eyes glazed over and we were knee-deep in an absurd discussion about something that should have been a means to an end, but had morphed into the end itself. At that moment, I realized: I’m done. I’ve finally sworn off talking to architects about microservices. Why? Because these conversations usually go nowhere productive.
It happened again last week. I was at an architecture review meeting when a fellow architect eagerly started another debate about *microservices*. Within minutes, eyes glazed over and we were knee-deep in an absurd discussion about something that should have been a means to an end, but had morphed into the end itself. At that moment, I realized: I’m done. I’ve finally sworn off talking to architects about microservices. Why? Because these conversations usually go nowhere productive.
Building a Linux Container Runtime from Scratch
(edera.dev)
Edera Protect is a suite of offerings bridging the gap between modern cloud native computing and virtualization-based security techniques. To power this platform, we've built our own container runtime designed to operate as a microservice, allowing it to run containers in a fully programmatic way—similar to how the Kubernetes Container Runtime Interface (CRI) enables container management through microservices.
Edera Protect is a suite of offerings bridging the gap between modern cloud native computing and virtualization-based security techniques. To power this platform, we've built our own container runtime designed to operate as a microservice, allowing it to run containers in a fully programmatic way—similar to how the Kubernetes Container Runtime Interface (CRI) enables container management through microservices.
The Synchrony Budget
(morling.dev)
For building a system of distributed services, one concept I think is very valuable to keep in mind is what I call the synchrony budget: as much as possible, a service should minimize the number of synchronous requests which it makes to other services.
For building a system of distributed services, one concept I think is very valuable to keep in mind is what I call the synchrony budget: as much as possible, a service should minimize the number of synchronous requests which it makes to other services.
Autothrottle: Resource Management for SLO-Targeted Microservices
(usenix.org)
Achieving resource efficiency while preserving end-user experience is non-trivial for cloud application operators.
Achieving resource efficiency while preserving end-user experience is non-trivial for cloud application operators.
The Microservices Fallacy
(ufried.com)
If you listen to discussions about microservices, they often feel like: Microservices are it! It’s how modern IT systems are built! Microservices reduce complexity! Microservices are needed for scalability! Everybody does Microservices! We want them! We need them!
If you listen to discussions about microservices, they often feel like: Microservices are it! It’s how modern IT systems are built! Microservices reduce complexity! Microservices are needed for scalability! Everybody does Microservices! We want them! We need them!
Nvidia-Ingest: Multi-modal data extraction
(github.com/NVIDIA)
NVIDIA-Ingest is a scalable, performance-oriented document content and metadata extraction microservice. Including support for parsing PDFs, Word and PowerPoint documents, it uses specialized NVIDIA NIM microservices to find, contextualize, and extract text, tables, charts and images for use in downstream generative applications.
NVIDIA-Ingest is a scalable, performance-oriented document content and metadata extraction microservice. Including support for parsing PDFs, Word and PowerPoint documents, it uses specialized NVIDIA NIM microservices to find, contextualize, and extract text, tables, charts and images for use in downstream generative applications.
Building a tiny load balancing service using PID Controllers
(pankajtanwar.in)
Recently, I came across an engineering blog by Dropbox, talking about their latest iteration of Robinhood (an in-house built load balancing service). It is designed to dynamically adjust node weights for even load distribution by leveraging Proportional Integral Derivative (PID) controllers.
Recently, I came across an engineering blog by Dropbox, talking about their latest iteration of Robinhood (an in-house built load balancing service). It is designed to dynamically adjust node weights for even load distribution by leveraging Proportional Integral Derivative (PID) controllers.
Domains listening to many other domains in Event-Driven Architecture
(reactivesystems.eu)
Usually, in an event-driven architecture, events are emitted by one service and listened to by many (1:n). But what if it’s the other way around? If one service needs to listen to events from many other services?
Usually, in an event-driven architecture, events are emitted by one service and listened to by many (1:n). But what if it’s the other way around? If one service needs to listen to events from many other services?
Why microservices might be finished as monoliths return with a vengeance
(venturebeat.com)
The shift towards microservices started gaining momentum in the early 2010s, as tech companies recognized the limitations of monolithic architectures. However, many companies such as Amazon (Prime Video), Invision, Istio and Segment are moving back to monolithic architectures. This article will explore why many organizations fail when transitioning to a microservices architecture.
The shift towards microservices started gaining momentum in the early 2010s, as tech companies recognized the limitations of monolithic architectures. However, many companies such as Amazon (Prime Video), Invision, Istio and Segment are moving back to monolithic architectures. This article will explore why many organizations fail when transitioning to a microservices architecture.
Managing Large-Scale Redis Clusters on K8s – Kuaishou's Approach
(kubeblocks.io)
As a popular short-form video application, Kuaishou relies heavily on Redis to deliver low-latency responses to its users.
As a popular short-form video application, Kuaishou relies heavily on Redis to deliver low-latency responses to its users.
Docker Compose Isn't Enough
(tealok.tech)
Docker Compose creates problems as you scale a single server to many applications. We should learn from it and build something better.
Docker Compose creates problems as you scale a single server to many applications. We should learn from it and build something better.
This Microservice Should Have Been a Library
(github.com)
About 6 years ago when I was a PHP ecommerce dev, I've always wanted to work with distributed systems and microservices.
About 6 years ago when I was a PHP ecommerce dev, I've always wanted to work with distributed systems and microservices.
Killing the Command message: should we use Events or Documents? (2007)
(microsoft.com)
If we want to decouple a SOA system, we must get away from the notion of the remote procedure call. In other words, our services need to have as few "command" messages as we can get away with. This is a design philosophy but it is easier said than done.
If we want to decouple a SOA system, we must get away from the notion of the remote procedure call. In other words, our services need to have as few "command" messages as we can get away with. This is a design philosophy but it is easier said than done.
Database Migrations in Kubernetes
(packagemain.tech)
In the era of microservices and Kubernetes, managing database migrations has become more complex than ever. Traditional methods of running migrations during application startup are no longer sufficient.
In the era of microservices and Kubernetes, managing database migrations has become more complex than ever. Traditional methods of running migrations during application startup are no longer sufficient.
Distributed transactions in Go: Read before you try
(threedots.tech)
If you work with microservices, a time may come when you need a transaction running across them.
If you work with microservices, a time may come when you need a transaction running across them.
Nanodjango
(github.com/radiac)
Full Django in a single file - views, models, API ,with async support. Automatically convert it to a full project.
Full Django in a single file - views, models, API ,with async support. Automatically convert it to a full project.
Monolith First (2015)
(martinfowler.com)
As I hear stories about teams using a microservices architecture, I've noticed a common pattern.
As I hear stories about teams using a microservices architecture, I've noticed a common pattern.
Protocol Buffer Design: Principles and Practices for Collaborative Development
(lyft.com)
At Lyft Media, we’re obsessed with building flexible and highly reliable native ad products. Since our technical stack encompasses mobile clients on both iOS and Android, as well as multiple backend services, it is crucial to ensure robust and efficient communication between all involved entities. For this task we are leveraging Protocol Buffers, and we would like to share the best practices that are helping us achieve this goal.
At Lyft Media, we’re obsessed with building flexible and highly reliable native ad products. Since our technical stack encompasses mobile clients on both iOS and Android, as well as multiple backend services, it is crucial to ensure robust and efficient communication between all involved entities. For this task we are leveraging Protocol Buffers, and we would like to share the best practices that are helping us achieve this goal.
Should we decompose our monolith?
(lethain.com)
From their first introduction in 2005, the debate between adopting a microservices architecture, a monolithic service architecture, or a hybrid between the two, has become one of the least-reversible decisions that most engineering organizations make.
From their first introduction in 2005, the debate between adopting a microservices architecture, a monolithic service architecture, or a hybrid between the two, has become one of the least-reversible decisions that most engineering organizations make.
From Event-Driven to Durable Execution: Distributed Execution Flow Paradigms
(metatype.dev)
In this age of cloud development and microservices architecture, problems start to arise with the increased workloads that run in the system.
In this age of cloud development and microservices architecture, problems start to arise with the increased workloads that run in the system.
Microservices vs. Monoliths: Why Startups Are Getting "Nano-Services" All Wrong
(thiagocaserta.substack.com)
So, you've launched a startup. You've got the idea, the team, and maybe even a bit of funding. Now comes the fun part: building the product. And like any tech-savvy entrepreneur, you've heard the gospel of microservices—"It's scalable!" "It's future-proof!" "Even *Google* and *Netflix* use it!"
So, you've launched a startup. You've got the idea, the team, and maybe even a bit of funding. Now comes the fun part: building the product. And like any tech-savvy entrepreneur, you've heard the gospel of microservices—"It's scalable!" "It's future-proof!" "Even *Google* and *Netflix* use it!"
Apache SkyWalking – Application Performance Monitor tool for Distributed Systems
(apache.org)
Application performance monitor tool for distributed systems, especially designed for microservices, cloud native and container-based (Kubernetes) architectures.
Application performance monitor tool for distributed systems, especially designed for microservices, cloud native and container-based (Kubernetes) architectures.