Distributed Systems is a term that is starting to include computing in its most general case. Multi-threaded, multi-core, NUMA systems have a lot in common with Multi-datacenter, multi-server systems. This commonality is what makes the study of distributed systems a valuable lingua franca.
Jay Edwards will be presenting a full-day training on this topic at Velocity in Santa Clara where you will learn about the various fundamental underlying principles of distributed design. In a recent call with Jay, he gave us his take on the topic of “Distributed Systems”, why the broadness of the subject can be a good thing and how just simply being aware of the limitations can be invaluable when starting your own projects.
My topic is distributed systems and it is fortunately (or unfortunately) a very broad subject. My hope is to try and take a lot of the academic literature that’s available and distill it into something that’s more understandable and directly usable in your everyday life.
The things I'll discuss apply even if you just have a database server and a client. You don't need to throw in a lot of additional systems before you start getting into the realm of what we're calling “distributed systems.” It’s more along the lines of systems that coordinate to perform units of work.
What we’re seeing in the industry, are people outsourcing a lot of functionality from their core application instead of building it; they're using software as a service. You end up having the same types of problems with these simple distributed systems as you do when you have this architecture of hundreds of microservices all working together, half of which belong to some other entity altogether. Its really the same types of problems just a broader extension to these problems and their solutions. These are some of the things we’ll discuss and help people learn in the training at Velocity.
There is literature available that informs you when you cannot do a thing - “proofs of impossibility”. If you're familiar with them, you can know that something you want to do is just impossible to do. You can't ever make it work. These can be helpful because it can prevent you from going down some paths where you would have spent a lot of time and effort trying to build your own systems to do a thing, when its very clear that that's actually been proven to be impossible.
This full-day training on Wednesday May 27 at Velocity will benefit developers, architects, technical leaders, operations engineers and anybody interested in the design and architecture of distributed design. Click here for more information and pricing.