pgtest VS tailetc

Compare pgtest vs tailetc and see what are their differences.

pgtest

PostgreSQL test helper for Go (by rubenv)

tailetc

total-memory-cache etcd v3 client (by tailscale)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
pgtest tailetc
1 2
50 131
- -
5.0 0.0
24 days ago almost 2 years ago
Go Go
MIT License BSD 3-clause "New" or "Revised" License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

pgtest

Posts with mentions or reviews of pgtest. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-01-13.

tailetc

Posts with mentions or reviews of tailetc. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-04-10.
  • Sched - In-process Go Job Scheduler. With Cron Support and Prometheus Metrics
    2 projects | /r/golang | 10 Apr 2021
    https://github.com/tailscale/tailetc/blob/b2fa539c2383d30d03e0eea1052022af132dca9f/tailetc.go#L142
  • An Unlikely Database Migration
    6 projects | news.ycombinator.com | 13 Jan 2021
    Interesting choice of technology, but you didn't completely convince me to why this is better than just using SQLite or PostgreSQL with a lagging replica. (You could probably start with either one and easily migrate to the other one if needed.)

    In particular you've designed a very complicated system: Operationally you need an etcd cluster and a tailetc cluster. Code-wise you now have to maintain your own transaction-aware caching layer on top of etcd (https://github.com/tailscale/tailetc/blob/main/tailetc.go). That's quite a brave task considering how many databases fail at Jepsen. Have you tried running Jepsen tests on tailetc yourself? You also mentioned a secondary index system which I assume is built on top of tailetc again? How does that interact with tailetc?

    Considering that high-availability was not a requirement and that the main problem with the previous solution was performance ("writes went from nearly a second (sometimes worse!) to milliseconds") it looks like a simple server with SQLite + some indexes could have gotten you quite far.

    We don't really get the full overview from a short blog post like this though so maybe it turns out to be a great solution for you. The code quality itself looks great and it seems that you have thought about all of the hard problems.

What are some alternatives?

When comparing pgtest and tailetc you can also consider the following projects:

go-memdb - Golang in-memory database built on immutable radix trees

etcd - Distributed reliable key-value store for the most critical data of a distributed system

lungo - A MongoDB compatible embeddable database and toolkit for Go.