-
Notifications
You must be signed in to change notification settings - Fork 0
Goals
A suite of polyglot, scalable, portable, and easy to maintain microservices running in an appropriate and reproducible environment.
By "polyglot", I mean:
-
Any service can be built using any kind of programming language and libraries it finds more suitable for getting his job done.
-
Any service can use any kind of database it finds more suitable for the job.
By "easy to maintain", I mean:
-
A service must be DRY, simple, small and follow the SRP from SOLID principles.
-
Must be easy to write unit and e2e tests for each service.
-
Must be easy to switch from a stack to another, so must be upgrading to major versions of frameworks and runtimes.
-
Must allow the developer to make simple implementations, so he can refactor faster.
By "portable, reproducible environment", I mean:
-
Must be easy to run all the infrastructure needed to run one or more services in any kind of environment.
-
Must be easy to distribute these services and its dependencies.
-
Must be easy to run a service independently or with one or more dependent services.
-
Must be easy to build a service independently or with one or more dependent services.
-
Must be able to reproduce the state of one or more services for debugging purposes.
-
Must be able to run the entire environment locally, without external dependencies.
By "scalable", I mean:
-
Must be easy to scale horizontally.
-
Must be able to schedule services through a cluster.
-
Must be able to run all services on a single host.