Database collaboration has always been one of TerminusDB’s fundamental principles. To provide git-like collaboration tools at the data layer so devs working on the backend can take advantage of source control, audited builds, and collaborative working. Keeping the human in the loop is ever more important as automation and AI gain momentum.
It is no surprise that TerminusCMS has database collaboration at its heart too.
We’re pleased to let you know that we have enhanced these data collaboration features to provide developers and end-users with more flexibility when developing and using applications with TerminusCMS.
Database Collaboration with Branches
When we released TerminusCMS we added change requests, or as some of you may know them from Git, pull requests. When a user makes changes to data, TerminusCMS prompts the user to create a change request –
A new change request creates a branch of the database. It’s like a database transaction that can stay open for a long time and associates a state that individuals and microservices can use to modify the change request branch.
In a branch, users and programs can make changes to content and data, this could be using the API, the TerminusCMS document UI, or via a domain-focused front end. Every commit is stored in TerminusCMS’s commit-graph. This details what has changed, when it changed, and who made the changes. Take a look at our documentation for a better understanding of how the various graphs work in TerminusCMS.
When all is complete, the change request is reviewed. In some instances, main may have moved on while the changes in the branch were being made. TerminusCMS can fetch and merge these updates into the change request branch and flag conflicts to be fixed.
The reviewer can then approve or reject the change request, aided by a diff viewer.
Change Request Workflows in Branches
The CI/CD approach to data management described above is ideal to manage data and content changes for one focus area, but when a headless platform covers multiple teams and domains, then an extra layer of moderation and review is needed.
The additional layer of review and moderation is handled once again by branches. Rather than create a new change request, a user would first create a new branch and then use the change request workflows within that branch. Effectively, it is adding another level of workflow to your applications. This process can be repeated, so a user could create a branch of a branch and so on.
Many teams and users can work concurrently on larger projects, incrementally updating the branch. This could be a project that takes months. Changes in production can be fetched to keep the development branch up to date. The process features smaller review workflows to keep accuracy in check, and then when complete, the branch can be merged. Alternatively, the branch may be for a standalone function to satisfy some specific data or front-end need, so may not need merging.
The ability to branch and use change request workflows has been available using the API and clients, but we’ve now made it available using the TerminusCMS dashboard.
What Can You Use TerminusCMS’ Database Collaboration For?
There are a few use cases that spring to mind for this type of database collaboration. We’ve listed a few, but in reality, you know your requirements better than we do, so if you see a good fit for these features, we’d love for you to let us know.
Supply Chain Planning & Replanning
The supply chain is a complex thing with many interconnected parts. Changes to any of these parts will impact other areas of the supply chain. TerminusCMS is well suited for this use case due to its graph database structure and the semantic connections between nodes. The relationships help planners understand the impact of change and this is especially important when planning and replanning (responding to external factors such as material scarcity).
By taking a branch of the supply chain information, planners can work with real data and get to see the impact of change and can work within their supply chain ecosystem to plan more accurately. Their number one priority.
Regulatory compliance comes in many forms and is a time-consuming and costly exercise. TerminusCMS enables compliance teams to branch their documentation, content, and data and work to get it ready for regulators. Perhaps some information needs redacting, maybe other information needs enriching. The team putting this together can work with real data without impacting any services running from production.
Because TerminusCMS is a headless platform, the head can connect to a specific branch. Regulatory information can be served in a number of ways, for example generating predetermined report formats or a self-service application.
A research team may use a variety of methods to record their test results, including paper-based data collection forms, spreadsheets, and specialized software programs. They would typically document the date of the test, the participant or sample identifier, the test outcome or measurement, and any relevant notes or observations. It is important for the research team to establish clear and consistent protocols for recording and managing their test results to ensure accuracy and reproducibility.
TerminusCMS’ database collaboration features make it a good fit as a research data management platform. Researchers can enhance their protocols and consistency by working from any particular commit of their data, taking a branch and running tests from there. Evolution rather than revolution.
Application Feature Enhancements
You’ve got an app that’s loved by users, but you want to stay ahead of the competition by adding new features that require more content, more data and changes to the schema. It’s a bit of work and you need to experiment with your development team to make it work. This can be achieved in the branch and the change request workflows will audit your feature enhancement with the all-important human eye(s) on developments. You can also use the branch for beta testing before rolling it out to your delighted customers.
Try TerminusCMS’ Database Collaboration Features for Free
Give TerminusCMS a go to see what you could build. It’s free to start and has generous limits. There are a few demo projects to try and if you need help, you can talk to us on Discord, GitHub, or through the contact form.
Let us know how you get on. We’re always interested in hearing what fellow builders are creating.