Hacker News new | ask | show | jobs
by elperdido 3682 days ago
I work as a contractor designing microservice arches on AWS. When I talk with my clients' developers about splitting their app into microservices, I ask them to use this abridged Unix Philosphy to draw borders:

1. Make each service do one thing well. To do a new job, build afresh rather than complicate old programs by adding new features.

2. Expect the output of every service to become the input to another. Don't clutter output with extraneous information.

3. Data structures, not algorithms, are central to complicated systems. The more universal you APIs, the easier to add new services later.

You can also compare this to functional programming: imagine each microservice is a stateless function for manipulating you data and outputting the result.