Skip to content

Philosophy

Mike Perham edited this page May 2, 2024 · 2 revisions

The Fediverse can be a big place and there's always room for different implementations -- Mastodon, Pleroma, and gotosocial being three examples.

Why pick Sparq? I have a strong philosophy for Sparq:

One Machine

Sparq is designed to run on one machine only and we do not provide any tooling for scaling beyond a single machine. Sparq will scale to use all cores on one machine; modern machines can have hundreds of cores. This limitation means that any one instance cannot capture a significant portion of the Fediverse and ensures a broad community of servers without consolidation into a few mega-instances. Fundamentally we use the Fediverse to avoid centralized social media.

One Process

Sparq embeds almost everything within its own binary and does not require the user to manage any external resources.

  • The database is sqlite and appears as a single file on the filesystem.
  • Background tasks are handled by embedding Faktory.
  • Redis is used by Faktory and started as a child process. It needs no management beyond ensuring sufficient RAM.
  • Image/video operations are provided by the ImageMagick suite of command line tools.
  • A local filesystem cache stores recent documents and media.
  • Optionally, media can be offloaded to an S3-compatible bucket for long-term storage. The cache ensures 90% of the traffic avoids S3 transfer charges.

Redis and ImageMagick must be installed and accessible on the machine. Typically apt install redis-server imagemagick is all you need to run on Linux.

No UI

Sparq does not provide any UI beyond the most minimal necessary to get started. The admin API is standard HTTP/JSON and an admin CLI will be provided to use this API locally and bootstrap the system. Because there are no practical standards for a user-facing API, Sparq will stay compatible with Mastodon's documented API endpoints so users can use any Mastodon client to work with Sparq day-to-day.

I believe constraints are liberating. These constraints are the differentiator for Sparq.

Commercial

If Sparq is successful, we envision providing commercial extensions for project sustainability. Examples include:

  • Desktop or Web UIs for easier administration.
  • Tooling for off-machine backups or real-time replication.
  • SAML/SSO integration for enterprises.
  • Monitoring and metrics UIs
Clone this wiki locally