the erebor

We launched the new checkout ecosystem “Erebor” after a few months ago in Hepsiburada. In this article, I will talk about what we have experienced during in this micro-service transformation.

“A software ecosystem is the interaction of a set of actors on top of a common technological platform that results in a number of software solutions or services.” Software Ecosystem: Understanding an Indispensable Technology and Industry by David G. Messerschmitt and Clemens Szyperski

I prefer to use “ecosystem” as a keyword to describe such a large structures because of their depth, capabilities, and scope. …

If I had an hour to solve a problem I’d spend 55 minutes thinking about the problem and five minutes thinking about solutions. Albert Einstein

You should deeply understand and describe the problem as clearly as possible before finding and implementing the solution. At this point, you can use specific methods to describe a problem. I will try to explain these methods under two different topics.

  • General Approaches
  • Domain Specific Approaches in System Design

General Approaches

  • Rephrase the Problem

We usually try to express a problem in a sentence word like “increase the productivity of X”. We should give more detail and…


The tech leads are the bridge between technical stakeholders and business stakeholders. So we must build a clear and robust communication between our stakeholders. It is not all about technical decisions, like system design, an interfaces, allocating responsibilities, design patterns , performance optimization, security, usability etc. It is all about “our stakeholders and their interests”. For this reason, we need to balance the relationship between our stakeholders.


You must change your perspective. As a software engineer, you can only focus on your business. But as a technical leader, you have to focus on the bigger picture.


You must always develop…

The Cap Theorem can be summarized with three words; strong consistency, availability and partition tolerance. As you know, You must pick two out of three. Unfortunately, You actually have only two options — not three. You can not be avoid or defeat network faults in any way. So, you can choice only between strong consistency and availability. I would like to explain the this problem in more detail in another article and talk about PACELC theorem.For now, I do not want to get off the point.

I have to say that, I will not talk about “tricks” or “workarounds” to…

Distributed Systems is a not a simple concept based on software architectures (especially micro services). Physically, a distributed system is an ensemble of physical machines that communicate over network links. In other words, a distributed system is composed of software processes that communicate via IPC mechanisms and are hosted on machines. If you focus only on the implementation then you need to change your perspective a little bit more. it wouldn’t be wrong to say like “a distributed system is a set of loosely-coupled components that can be deployed and scaled independently called services”

In fact, a distributed system actually…

Cem Başaranoğlu

just a software craftsman

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store