diff --git a/README.md b/README.md index 2fc4604f..27f6d1e6 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,16 @@ Plugins are available at [github.com/micro/go-plugins](https://github.com/micro/ Go Micro abstracts away the details of distributed systems. Here are the main features. +- **Authentication** - Auth is built in as a first class citizen. Authentication and authorization enable secure +zero trust networking by providing every service an identity and certificates. This additionally includes rule +based access control. + +- **Dynamic Config** - Load and hot reload dynamic config from anywhere. The config interface provides a way to load application +level config from any source such as env vars, file, etcd. You can merge the sources and even define fallbacks. + +- **Data Storage** - A simple data store interface to read, write and delete records. It includes support for memory, file and +CockroachDB by default. State and persistence becomes a core requirement beyond prototyping and Micro looks to build that into the framework. + - **Service Discovery** - Automatic service registration and name resolution. Service discovery is at the core of micro service development. When service A needs to speak to service B it needs the location of that service. The default discovery mechanism is multicast DNS (mdns), a zeroconf system. @@ -35,16 +45,6 @@ transport is [gRPC](https://grpc.io/). - **Async Messaging** - PubSub is built in as a first class citizen for asynchronous communication and event driven architectures. Event notifications are a core pattern in micro service development. The default messaging system is a HTTP event message broker. -- **Authentication** - Auth is built in as a first class citizen. Authentication and authorization enable secure -zero trust networking by providing every service an identity and certificates. This additionally includes rule -based access control. - -- **Dynamic Config** - Load and hot reload dynamic config from anywhere. The config interface provides a way to load application -level config from any source such as env vars, file, etcd. You can merge the sources and even define fallbacks. - -- **Data Storage** - A simple data store interface to read, write and delete records. It includes support for memory, file and -CockroachDB by default. State and persistence becomes a core requirement beyond prototyping and Micro looks to build that into the framework. - - **Synchronization** - Distributed systems are often built in an eventually consistent manner. Support for distributed locking and leadership are built in as a Sync interface. When using an eventually consistent database or scheduling use the Sync interface.