Distributed Systems
Distributed computing is a field of computer science that studies distributed systems. A distributed system is a system whose components are located on different networked computers, which then communicate and coordinate their actions by passing messages to each other. The components interact with each other in order to achieve a common goal. Three significant characteristics of distributed systems are: concurrency of components, lack of a global clock, and independent failure of components. Examples of distributed systems vary from SOA-based systems to massively multiplayer online games to peer-to-peer applications.
A computer program that runs within a distributed system is called a distributed program (and distributed programming is the process of writing such programs). There are many different types of implementations for the message passing mechanism, including pure HTTP, RPC-like connectors and message queues.
A goal or challenge pursued by some computer scientists and practitioners in distributed systems is location transparency; however, this goal has fallen out of favor in industry. As distributed systems are a different concept from conventional non-distributed systems, the differences, such as network partitions, partial system failures, and partial upgrades, cannot simply be "papered over" by attempts at "transparency" (see CAP theorem).
Source: https://en.wikipedia.org/wiki/Distributed_computing
Position on the Adoption Curve
Presentations about Distributed Systems
No Microservice Is an Island
Debugging Microservices: How Google SREs Resolve Outages
Debugging Microservices: How Google SREs Resolve Outages
Chick-Fil-A: Milking the Most Out of 1000's of K8s Clusters
Chick-Fil-A: Milking the Most Out of 1000's of K8s Clusters
Forced Evolution: Shopify's Journey to Kubernetes
Complex Event Flows in Distributed Systems
Efficient Fault Tolerant Java with Aeron Clustering
Canopy: Scalable Distributed Tracing & Analysis @Facebook
Canopy: Scalable Distributed Tracing & Analysis @Facebook
Modeling the Real World With Elixir/OTP
Next Gen Networking Infrastructure With Rust
Digital Publishing for Scale: The Economist and Go
Large Scale Architectures Panel
Large Scale Architectures Panel
Large Scale Architectures Panel
Large Scale Architectures Panel
Large Scale Architectures Panel
Large Scale Architectures Panel
Large Scale Architectures Panel
Heretical Resilience: To Repair is Human
Help! I Accidentally Distributed My System!
Help! I Accidentally Distributed My System!
Platforms at Twilio: Unlocking Developer Effectiveness
Interviews
No Microservice Is an Island
You worked at Capital One first and then switched over to Square. So what were you working on at Capital One?
At Capital One, I was working on the first layer of services that our mobile app and website hit. Any new mobile or web request would first reach the service owned by my team. This service implemented security and customisation logic and then made a server request to the broader Capital one ecosystem. Capital One has a lot of microservices. QCon: And what do you work on now at Square?
Was the stack you worked on at Capital One JVM based or Node?
There were a lot of people at Capital One who worked on Java, but I was working on Node there. At Square I am working on a ruby on rails monolith and we are working towards a microservices based architecture.