Vaccinating applications. Resilience in distributed systems.

Vaccinating applications. Resilience in distributed systems.

L. Peter Deutsch wrote about the seven fallacies of distributed computing already in 1994. One can wonder how it is possible that over 20 years later they are so often forgotten. Given the current popularity of public clouds and microservices architecture, such ignorance seems like asking for problems. So what should we do to avoid such problems? How do we ensure system resilience?

read more

Metrics. How numbers facilitate communication.

Metrics. How numbers facilitate communication.

Everyone wants to be happy. But can you measure happiness? Is is possible to assert how much happier you are on a particular day? Have you heard anyone say “today I’m 10% happier than a week ago”? I doubt that. But even if it was the case, would it make any sense? After all, no one expects a mathematical approach to feelings. This is different, however, with software.

read more

Microservices - is it for me?

Microservices - is it for me?

Microservices are one of the biggest buzzwords of recent years. However, it turns out that it is a bit like teenage sex: everyone talks about it, but nobody really knows how to do it. What does it take to make good use of this architecture? What conditions do we have to meet so that it’s something more than just an item on your CV? Read the article to find out.

read more

The law of good style

The law of good style

Why the Law of Demeter is crucial to object-oriented programming

GRASP, SOLID, DRY, KISS, IOC… Every developer worth their salt is familiar with this alphabet soup of best practices for programming. Which one do you like the most? SOLID (introduced by Robert C. Martin) is definitely the most popular one.

read more

Testing REST and Messaging with Spring Cloud Contract at Devskiller

Testing REST and Messaging with Spring Cloud Contract at Devskiller

Here at Devskiller, we have been working with Spring Cloud Contract for a long time now in order to simplify designing the APIs and testing our system while, at the same time, keeping the communication between services working correctly. In fact, the members of our team have been among the creators, first users, and first contributors of the Accurest project that has later been adopted in Spring Cloud as Spring Cloud Contract. Over time, we have both adjusted the way we work with the contracts to the specifics of our team and our system, and have leveraged the contracts to make substantial changes in our architecture. This article is dedicated to some of the things we have learnt while working with this tool and the improvements we were able to introduce to our system thanks to having adopted the Consumer-Driven Contracts approach.

read more