PeachCloud is built primarily with a microservices architecture. Each microservice utilises JSON-RPC - a stateless, light-weight remote procedure call protocol - as a means of exposing functionality and allowing interoperability. This approach produces a collection of services which are highly maintainable and testable, loosely coupled and independently deployable. HTTP and WebSockets are used as transports for the microservices.

The suite of PeachCloud microservices currently includes:

  • peach-buttons (repo)
    • poll GPIO pins for button presses and emit events via pub-sub
  • peach-menu (repo)
    • monitor and interact with the device via the physical interface
  • peach-monitor (repo)
    • monitor network data usage and set alert flags
  • peach-network (repo)
    • query and configure network interfaces
  • peach-oled (repo)
    • write and draw to the OLED display
  • peach-stats (repo)
    • query system statistics