[erlang-questions] Microservices vs. Erlang processes

Garrett Smith g@REDACTED
Mon Jul 7 18:05:26 CEST 2014


On Mon, Jul 7, 2014 at 10:45 AM, Lloyd R. Prentice
<lloyd@REDACTED> wrote:
> Hello,
>
> We're hearing much about "microservice architecture" in system design circles these days:
>
> http://martinfowler.com/articles/microservices.html

This IMO is a rebranding of the Service Oriented Architecture (SOA)
moniker that was hijacked by software vendors and enterprise IT to use
to sell non-SOA technology. SOA is a wasteland and companies like
Thoughtworks need something to rally that has some potential to work.

> Can anyone explain to me how this design practice differs from the Erlang practice of factoring a system into concurrent processes?

This is the point of e2:

http://e2project.org

It's why the primary process interface is called a "service". The idea
is that SOA, or now microservices, is a good way to conceive of an
application. It provides a mental model for approaching problems.

> I think I understand that they have different interfaces and that Erlang processes can be easily monitored and supervised but, beyond that...
>
> - Is this a case of another term for a functionally equivalent concept?

I think the underlying principles are the same. Microservices are
language agnostic however.

> - Is an Erlang process typically coarser or finer grained than a typical microservice?

Finer - even much, much finer. If you compare a "microservice"
implementation in another language to an Erlang "system", the later
should be called "nanoservice".

> - What "itch" is being scratched by microservice design that can't be scratched by well designed Erlang?

It's really the only sane way to approach problems where more than one
thing is going on at the same time (concurrency). The itch is more
like a gasping-for-breath.

"Microservices" is not language specific, so it embraces language diversity.

Garrett



More information about the erlang-questions mailing list