Skip to content
Asim Aslam edited this page Jun 1, 2016 · 86 revisions

The micro ecosystem is rapidly growing but there's still a lot to do.

  1. API
  • Allow requests directly to RPC services via path (/greeter/say/hello => service: greeter method: Say.Hello)
  • TLS Support
  • Allow namespace to be set via flags
  • Apache log format
  • Stats page
  • Allow REST requests to RPC based services
  • Make the choice a flag/env var
  • HTTP Middleware/Plugins
  • Configurable namespace for services
  • Configurable hostnames
  • Support label based routing
  • Support weighted load balancing
  1. Web
  • Proxy requests to "web" micro services
  • List "web" micro services on home screen
  • TLS Support
  • Web Sockets
  • Allow namespace to be set via flags
  • Apache log format
  • Stats page
  • CLI interface in Web UI
  • Configurable hostnames
  1. Sidecar
  • TLS Support
  • Apache log format
  • Stats page
  • Raise awareness for non Go native app usage
  • Make it work with multiple transports
  1. CLI
  • Support querying via proxying the sidecar
  • Allow connecting through the API or Web where private network isn't available
  1. Bot
  • Implement the bot
  • Feature parity with CLI
  • Slack input
  • Hipchat input
  • IMAP input
  • Broker input
  • Stream interface
  1. Dependencies
  • Create dependency management config for services
  • Allow push/pull from micro.mu
  1. Examples
  • Top level initialisation
  1. Middleware/Wrappers
  1. Code generation
  1. Registry
  • Support Service TTLs on registration so services can be automatically removed
  • Healthchecking function to renew registry lease
  • Service/Node filters - known as a Selector
  • Fix the watch code to return a channel with updates rather than store in memory
  • Add timeout option for querying
  1. Broker
  • Support distributed queuing
  • Support acking of messages
  • Support concurrency with options
  • MQTT
  1. Transport
  • Cleanup send/receive semantics - is it concurrent?
  1. Bidirectional streaming
  • Client
  • Server
  • Code generation for streaming interface
  • Examples
  1. TLS Support
  • Registry
  • Broker
  • Transport
  1. Selector
  1. Select Filters
  1. Resiliency
  • Add timeout and retry logic based on adrian cockcroft's ideas here
  1. Debug
  • Health
  • Stats

Overview

  • Define the interfaces for every package
  • Provide documentation for go-platform's usage
  • Implement trace and monitoring first
  • Provide easy initialisation and wrapping for go-micro client/server
  1. Discovery
  • In memory catching using registry watch
  • Heartbeating the registry
  1. Routing
  • label based routing
  • Weighted loadbalancing
  • Circuit breakers
  • Rate limiting
  • Google GSLB style semantics
  1. Key-Value
  • Implement interface
  • Memcache implementation
  • Redis contribution
  • In memory implement
  1. Trace
  • Implement interface
  • Pub/Sub based tracing
  • Timing endpoints for trace service
  1. Monitor
  • Implement interface
  • Custom healthcheck types
  • Add stats/status publications
  • Monitor the health of services
  1. Config
  • Implement interface
  1. Auth
  • Implement interface
  1. Logging
  • Implement interface
  1. Event
  • Implement interface (sparse)
  1. Metrics
  • Implement interface
  • Provide more example implementations
  • Improve auto loading of plugins
  1. Registry
  1. Transport
  1. Broker

TODO:

  • implement IAM policies

Dashboards

Create simple OSS dashboards for each platform service

Services

Version 1. (Asim's definition of version 1)

Deployments

  • Micro on Kubernetes
  • Micro Docker Compose
  • Platform Docker Compose
  • Logistics/On-Demand Example
  • Micro on Nomad

Demos