Skip to content
all episodes
Code of Architecture · episode 23

Distributed Systems — Episode 3

1:26:56

Episode participants

  • Mikhail Tyurin

    guest

  • Ilya Tsvetkov

    guest

Conversation

What we discussed on the recording

The third episode treats processes and threads as the execution substrate. Threads switch cheaply and prevent a blocking call from stopping the application. A process per connection, threads, and event loops trade simplicity against memory, scheduling, and throughput.

Virtualization detaches a program from hardware. The speakers distinguish process virtual machines, system VMs with a guest OS, and containers sharing a kernel. With more layers between code and processor, scheduling, resource limits, and real isolation become essential knowledge.

A client may render an interface or execute substantial logic; browsers show how process isolation improves stability. Servers are compared through iterative versus concurrent and stateless versus stateful models. Stateless nodes are easier to replace, while stateful nodes preserve context but require lifecycle management.

Code migration moves computation toward data. Remote evaluation sends code to a server, code on demand to a client, and a mobile agent carries execution state. Migration must handle bound resources, security, environment compatibility, and the choice between code mobility and moving a running process.

Book series
Distributed Systems
Maarten van Steen, Andrew S. Tanenbaum
Book playlist