transparency-dev / transparency-dev/tessera

Feature: Allow personality code to author custom storage implementations

Open
#660 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Go
Stars
238
Forks
56
Avg merge
1d 2h
Merged PRs (30d)
35

Description

Tessera currently supports the 4 provided storage implementations. Anyone that wants to implement their own storage layer has two options:

  • contribute it to the core repo (with our agreement)
  • fork the repo, and live with any breaking changes to internal packages when re-syncing to HEAD

A missing option here is to allow personalities to author their own private storage implementations, and inject them into Tessera when, e.g. constructing an Appender. This was explicitly out of scope from the beginning of the design due to the scope. It's worth noting that a storage implementation is the vast majority of the code, so personalities that implement their own storage layer are almost implementing their own log in its entirety.

It will take some convincing that we should support this feature, but raising this to collect a demand signal and use-cases so that we have all info on this topic in a single place.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading how Appender is constructed and how the four provided storage implementations are integrated. Gather concrete use cases and compare the existing storage boundary with the needs of a private personality-owned implementation. Done requires agreement on whether this extension is supported and what injection design and compatibility expectations it should have.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.