Which Dolt is Right for You?
Here at DoltHub, we build a surprisingly large number of products all built around the "version controlled database" theme. We have Dolt, Doltgres, Hosted Dolt, DoltHub, DoltLab, and the Dolt Workbench.
We know this is a dazzling array of great products but people are often confused by the plethora of options. Which Dolt is right for you? Potentially all of them. This blog explains what each Dolt is for.
The Landscape
The array of products starts to make a little bit more sense when you lay them out into categories. We have databases, services, and workbenches. Within services we offer a couple of remotes, a term borrowed from Git.
Databases
The world's first version controlled SQL databases are the core of what we build here at DoltHub. None of the other products make sense without Dolt or Doltgres.
Dolt is the world's first version controlled SQL database. Think Git and MySQL had a baby. Dolt is the only SQL database you can diff, branch, merge, push and pull, just like a Git repository. Dolt is a drop-in replacement for any MySQL database. In SQL, version control functionality is accessed via procedures, functions and system tables. Dolt also ships with a Git-like CLI for performing Git-style operations on your database. Dolt is 1.0 and production-ready.
Doltgres is a Postgres-flavored version of Dolt. It is in early-Alpha. Doltgres will eventually be a drop-in replacement for Postgres but that's a ways off. Doltgres will not have a Git-style CLI. Right now, Doltgres is for people who want a version controlled database and must have Postgres-flavored SQL.
Not ready to make Dolt or Doltgres your primary? Both can be run as a replica of MySQL and Postgres respectively using standard binlog
or wal
replication. Every transaction commit on your primary becomes a Dolt commit on the replica. This replica can be used for disaster recovery, historical queries, or testing. Running a Dolt or Doltgres replica is a great way to get started with Dolt because it's all upside and no downside.
When adopting Dolt, you first choose traditional Dolt or Doltgres and then go from there. For almost all use cases, we recommend choosing Dolt as it is far more mature than Doltgres. Doltgres is for users who must have Postgres-flavored SQL for their environment.
Self-hosting Dolt or Doltgres is the simplest way to get Dolt in your environment. Deploy these databases like you would MySQL or Postgres. Dolt and Doltgres work with Docker. Connect to a running Dolt with any MySQL client. Dolt just works with all your favorite tools in all your favorite languages. Dolt may be all the Dolt you need and that's ok with us.
Services
To surround our core database offerings, we offer a number of services to augment the version control experiences of Dolt and Doltgres.
Hosted Dolt is AWS for Dolt. We'll run a Dolt database for you in AWS or Google Cloud. Choose the size of host and how many replicas you'd like. Click deploy, wait a couple minutes, and then connect to your Dolt database via the internet with any MySQL-compatible client. Hosted Dolt comes with backups, monitoring, a built-in SQL workbench, and Enterprise support.
Hosted Dolt has the option to also act as a Dolt remote. You can use your Hosted Dolt as a collaboration hub using clone, push, and pull.
We recommend Hosted Dolt for all users who would traditionally choose AWS RDS to run MySQL. Databases are difficult to operate correctly without downtime. Why not leave the database operations to the experts so you can focus on building your application? That's what Hosted Dolt is for.
Remotes
A remote is a copy of your database that you clone, push, and pull from. Dolt has many remote options. The two "product-ized" remotes are DoltHub and DoltLab.
DoltHub is Dolt's GitHub, an internet-accessible Dolt remote used for collaboration via a slick, modern web interface. DoltHub implements Pull Requests, Forks, Issues, Permissions, an API, and many more features bringing GitHub's decentralized collaboration model to Dolt databases.
DoltLab is a version of DoltHub you can install in your own network and use as a Dolt remote. DoltHub and DoltLab share the same user interface. The only difference is that DoltLab is deployed in your own network so Dolt databases never leave the cozy confines of your firewall.
DoltLab has an Enterprise offering that adds security, scalability and support to your DoltLab instance. Customize the look and feel and use your company's identity provider for account management. Run DoltLab across multiple cloud resources so it can support the scale of your growing company.
Remotes enhance collaboration use cases. Human review of multiple asynchronous changes via Pull Request is a tried, tested, and true way of ensuring code quality. Dolt customers find the same workflow works for their data as well. We find most Dolt users eventually want a Dolt remote like DoltHub or DoltLab even if it's just for backup and testing.
We recommend DoltHub for the open data use case. DoltHub is the best way to share Dolt databases on the internet. DoltHub is free for public databases.
Most of our customers prefer DoltLab for intra-company collaboration use cases, though DoltHub permissions are akin to GitHub permissions. If you run on-premises GitHub Enterprise or GitLab for your Git repositories, you'll probably also want DoltLab Enterprise. If you use regular, old, private GitHub repositories for source, DoltHub is probably right for you.
Workbenches
SQL Workbenches are a common graphical interface to SQL databases. Of course, you can also connect to Dolt using any MySQL-compatible workbench like Datagrip, TablePlus, or even MySQL Workbench. Dolt has its own workbench that exposes version control functionality via a convenient user interface.
The Dolt Workbench gives you a SQL Workbench-style user interface to connect to Dolt on your own computer, akin to the MySQL Workbench. You can execute SQL queries and access unique version control features like a commit graph visualization and Pull Requests.
Hosted Dolt, DoltHub, and DoltLab all ship with versions of the standalone Dolt Workbench.
Most users use a workbench for manual access to a running Dolt database. The standalone Dolt Workbench is new and growing in popularity. The integration of the Dolt Workbench into all Dolt services is a feature most Dolt users adore.
Conclusion
Less confused? Great. Get started with Dolt already! Still not sure which Dolt is right for you? Come by our Discord and we're happy to help you figure it out.