5 Lemmy Architecture Concerns
Ryexandra edited this page 2 years ago

What is This?

Through the course of working on our launch, many of us have found and expressed concerns with the way Lemmy is architectured in relation to security or extensibility and maintenance of the project. both on the Front end and the Backend. This document serves as a place for recording those concerns and the rationale.

This document is organized by the area of origin of the concern but the issues may affect many things.

Frontend Concerns

TODO

Backend Concerns

Database

Usage of Serial IDs in a decentralized system

The problems

  • Collision of Ids across instances
  • Desync of serial order with instance communication
  • Enumeration of potentially sensitive info (very obvious to outside actors if an instance has 5k users and how to quickly scrape info on them)
  • Multiple ways in which the DB will choose to gap a serial meaning popular tables run the risk of running out
  • Restoring a backup becomes extremely difficult without dropping the series first. problematic to re-create it afterward

Proposed Solutions

Lack of extensibility

The problems

  • Structures like users or communities cannot have even minor features added without changing underlying data structure
  • ??

Proposed Solutions

  • Pair these structs with 'settings' or similar structs which contain only descriptive information.

API

Mix of Stateful and RESTful API

The Problems