InfoQ Homepage Distributed Systems Content on InfoQ
-
Anti-Patterns Working with Microservices
The main problem with monolithic applications is that they are hard to scale, in terms of the application, but more importantly, in terms of the team. The main reason for a switch to microservices should be about teams, Tammer Saleh claimed at the recent QCon London conference when describing common microservices anti-patterns and solutions he has encountered.
-
Microservices for a Streaming World
Embrace decentralization, build service-based systems and attack the problems that come with distributed state using stream processing tools, Ben Stopford urged in his presentation at the recent QCon London conference.
-
Real-World Consistency Explained: Uwe Friedrichsen Discusses His Favourite Academic Papers
At the microXchg 2016 conference, held in Berlin, Germany, Uwe Friedrichsen presented a deep-dive into “real-world consistency explained”. Friedrichsen referenced multiple academic papers and discussed topics such as ACID vs BASE, his belief that many developers may not fully understand consistency guarantees with a typical SQL database, and how consistency affects microservice systems.
-
Moving from Transactions to Streams to Gain Consistency
With many databases in a system they are rarely independent from each other, instead pieces of the same data are stored in many of them. Using transactions to keep everything in sync is a fragile solution. Working with a stream of changes in the order they are created is a much simpler and more resilient solution, Martin Kleppmann stated in his presentation at the recent QCon London conference.
-
"Surviving Microservices" with Richard Rodger at microXchg: Messages, Pattern Matching and Failure
At the microXchg 2016 conference, held in Berlin, Germany, Richard Rodger presented “Surviving Microservices”, a practical guide for developers wanting to keep their microservices architectures ‘healthy and performant’. Key topics discussed in the talk included the benefits of message-oriented systems, pattern matching with inter-service communication, dealing with failure, and Seneca.js.
-
Don’t Think like an Engineer When Designing Microservices
When designing microservices and their APIs, you need to think like a designer focusing on the users, Nic Benders claimed in his presentation at the recent Microservices Practitioner Summit. Design the API first, then build your services with an outside-in approach.
-
Microservices and Teams at Amazon
The microservices pattern are changing how we build applications and team structure is extremely important to be successful in building and running these microservices, Chris Munns stated in a talk about how microservices at enterprise scale are built at Amazon at the earlier I Love APIs 2015 conference.
-
IronFleet: A Methodology for Proving Distributed Systems
A group of researchers from Microsoft has published the paper “IronFleet: Proving Practical Distributed Systems Correct” (PDF) and made available the accompanying source code demonstrating the use of the methodology in machine proving the correctness of a non-trivial distributed system from a safety and liveliness point of view.
-
Microservices Conference in Stockholm and London due Early November
The second Microservices Conference arranged by Skills Matter is due early November with two days in Stockholm and London respectively. The list of speakers include the program lead for the conference Russ Miles, David A. Dawson, Björn Carlson, chief architect at Klarna, Viktor Klang, chief software architect at Typesafe, Ian Cooper and Daniel Bryant.
-
Lessons Learned Working with Distributed Systems
Preparing for problems like partial failure is the best thing you can do when working with distributed systems, Vaughn Vernon explains in a conversation with InfoQ and refers to a blog post by Jeff Hodges noting its down-to-earth approach and practical advices e.g. designing for partial availability, and using capped exponential back off to restore full operation when dependencies are unavailable.
-
A Critical Look at CQRS
Looking at Command Query Responsibility Segregation (CQRS) in a larger architectural context there are other architectural styles available. There are database technologies solving the same problems but in a simpler way, Udi Dahan states looking into ways of approaching CQRS. There is also a way that fulfils a lot of the CQRS goals but with fewer moving parts when CQRS is really needed.
-
DDD, Events and Microservices
To make microservices awesome Domain-Driven Design (DDD) is needed, the same mistakes made 5-10 years ago and solved by DDD are made again in the context of microservices, David Dawson claimed in his presentation at this year’s DDD Exchange conference in London.
-
Stefan Tilkov: Skip the Monolith, Start with Microservices
During the last months Martin Fowler among others have claimed that a microservices architecture should always start with a monolith, but Stefan Tilkov is convinced this is wrong, building a well-structured monolith with cleanly separated modules that later may be pulled apart into microservices is extremely hard, if not impossible in most cases.
-
A Service is a Logical Construct Built by Microservices
A service is a logical construct owning a business capability and made up of internal autonomous components or microservices that together fulfil the responsibilities of the service, Jeppe Cramon suggests continuing a previous series of blog posts clarifying his view on building services around business capabilities and bounded contexts.
-
Uber Unveils its Realtime Market Platform
Matt Ranney, Chief Systems Architect at Uber, gave an overview of their dispatch system, responsible for matching Uber's drivers and riders. Ranney explained the driving forces that led to a rewrite of this system. He described the architectural principles that underpin it, several of the algorithms implemented and why Uber decided to design and implement their own RPC protocol.