Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • document-storage document-storage
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 1
    • Issues 1
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Wandelwerk-Software
  • libraries
  • document-storagedocument-storage
  • Issues
  • #1
Closed
Open
Created Dec 29, 2020 by Bruno Burke@bb756626🍔Owner

Use PostgreSQL as Versioning/Storage-Engine

Using git with pretty-printed edn files has many flaws. It might make sense to use a tailored edn-first versioning approach.

  • Store Data in PostgreSQL
  • Store changes in the style of video compression:
    • Keyframes: Complete Document
    • B-Frame/P-Frame: Storing only a diff in relation to a previous or following keyframe document

Deserializing/Serializing

Pretty printed edn was a good solution for git line-based diff. When using edn specific diff we no longer need pretty printed edn serialization. Therefore we can use faster formats, as long as they dont change the data.
Two possible options might be:

  • Nippy
  • Transit

EDN Diff

There are multiple options for diffing/patching. Editscript is an option and has A* and Quick Algorithms.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking