Skip to content

Latest commit

 

History

History
89 lines (73 loc) · 2.56 KB

File metadata and controls

89 lines (73 loc) · 2.56 KB

Services

Micro Services are services offered on the M3O platform

Overview

M3O is a cloud native platform for Micro services development. It is host to services offered by Micro to the world. Services are Go Micro based services serving a specific domain boundary via an RPC interface. Services provide some value but also act as building blocks for other services to be built on.

Services can extend beyond RPC to also provide an API, Web or Mobile apps.

Server

Services provided by the core runtime

  • Auth - Authentication and Authorization of users and services
  • Broker - Async publish and subscribe messaging
  • Config - Dynamic application level configuration (TODO: secrets)
  • Debug - Debugging service info; logs, stats, tracing
  • Events - Event aggregation and storage
  • Network - Multi-environment service networking and latency based routing
  • Registry - Service registry, endpoint and metadata explorer
  • Runtime - Service provisioning and lifecycle management
  • Store - Distributed key value storage service
  • Sync - Distributed synchronisation; locking, leadership election, maps, events, cron, workers
  • Monitor - Healthchecking, services monitoring and user defined checks
  • Identity - Distributed CA and strong identity
  • Token - Random opaque token generation for one time usage of APIs

Clients

External entrypoints also within the micro server

  • API - API gateway for http/json api construction
  • Web - Web dashboard and proxy for web apps as microservices
  • CLI - Terminal command line interface
  • Bot - Slackbot for ChatOps
  • Proxy - Service to service and external proxying to services
  • Voice - Ok Google, Siri, integration for voice commands

Services

A non-comprehensive list of high-level services:

  • Alerting
  • Audio
  • Backups
  • Broadcast
  • Checkout
  • Customer
  • Database
  • Email
  • Event
  • Food (markets)
  • Fraud/Risk
  • Gamify (scores / leaderboard)
  • geocoding
  • i18n
  • Image
  • Location
  • Maps
  • Message
  • Monitoring
  • Notes / todo / lists
  • Notification
  • Payment
  • Personalisation
  • Place
  • Popup (locations)
  • Review (hyper local ephemeral reviews)
  • Reward (points / tokens)
  • Search
  • Secrets
  • Status
  • Stream
  • Support
  • Timeline
  • translation
  • User
  • Video
  • Voice

Testing & security services:

  • Fuzzing - Sends random garbage to rpc endpoints
  • Chaos - Attempts to destroy the runtime by stopping or killing things
  • End to End (E2E) - Allows end-to-end flows for real world product tests