adamcharnock/lightbus

Create management interface

Opened this issue · 0 comments

What problems does this need to solve?

Use cases:

  • Is everything working as expected?
    • Error rates
    • Services are behind
  • If everything isn't working, why?
    • What are the recent errors?
    • Are services lacking workers?
    • Are workers bouncing? (keep restarting)
  • Get me the message for a given ID (bonus: search for messages based on other criteria)
  • Why was this message emitted? (i.e. does it have a parent event)
  • What downstream events were triggered by this event?

Backend specific information:

  • Redis:
    • Memory use
    • Stream size / growth over time
    • Last save to disk

Brain-dump of proposed features / possible interfaces:

  • View services
  • View workers
  • View lag
  • Inspection features as provided by lightbus inspect
  • View APIs
  • View events
  • View RPC calls
  • Send events (validated against schema)
  • Make RPC calls (validated against schema)

Previous implementation

A previous implementation was created with aiohttp and React. I found this to be cumbersome, and likely a faff for other contributors to get up and running. I would like to prioritise ease of setup for the next attempt. I'm currently leaning towards Django Channels and vue.js.