transparency-dev / transparency-dev/tessera
Feature: Allow personality code to author custom storage implementations
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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