Proto.Actor was born in the Go ecosystem, these design principles was set on day one to conform to the Go mindset.
Don’t bloat the API, avoid enterprisey JVM like containers and configurations. Offload features like logging, configuration, scheduling and dependency injection to 3rd party libraries. they are not part of the core problems solved by the framework. The API should be small and easy to use
Build on standards
Don’t reinvent solved problems, build on proven tech and standards. Protobuf for serialization, gRPC Streams for network transport, Consul for cluster membership
Message passing, not object passing
Don’t try to hide serialization. Serialization is an explicit concern, messages should be clearly defined contracts and not arbitrary platform specific objects.
Don’t trade performance for magic API trickery.
By following the above constraints, we gain some very valuable properties.
Fast-paced development and Maintainable code
We are mostly gluing existing blocks together, this means that the code is easy to understand, maintain and extend.
We build on standards, platform agnostic technologies and a minimalistic codebase, this means that we can port the framework to other platforms.