Last week I visited GOTO Amsterdam. There were some fantastic speakers talking about micro services. At Magnet.me we’re spending a lot of effort in transforming our monolithic application into micro services so we were curious to see if we were on the right track. Turns out we are, for which I’m very proud of the team. One talk in in particular stood out and gave me a new insight, which I’d like to share here.
The talk was by Fred George who presented this definition of micro services. I thought it was pretty accurate:
Fred told a very interesting story about rolling out new versions of micro services. He gave the example of a car rental company that had a micro service that was responsible for generating ads to show customers on the website. The system was connected via a message bus. Because the advertisement service was so small, it was easy for programmers to duplicate the micro service (literally just copy/paste it), optimize it, and then run the new version along side the older version. This sounded very wrong and horrible to me at first, because you’re duplicating code, and you’d have to “maintain” two versions of a service. But then Fred shed some light on the potentially huge benefits.