Introducing the community’s first Liquibase Legend
Becoming a Liquibase Legend is no easy task. We wanted it to mean something special so we could reserve this achievement for those that make the biggest impact on the community.
Whether by contributing code, creating helpful content, or offering support to others, reaching Legend status takes a significant amount of time and effort. When taking a look at all the ways to collect points, creating a Liquibase extension to ensure that a particular database works with Liquibase is the biggest lift. After all, it’s a 200-point bounty!
It’s no surprise to us that our very first Liquibase Legend created not one, but two Liquibase extensions: one for MongoDB and one for CosmosDB. If you use either of these databases and want to make database changes a lot easier, you can thank our new friend, Alexandru Slobodcicov for paving the way for these extensions.
Before we jump into all of the details of his work on the extensions, we are eager to share what we learned about him.
Greetings from Texas, Alexandru!
Our diverse community provides an opportunity to meet with people from all over the world. (Thanks, Zoom!) There’s no timezone we haven’t crossed in an effort to connect “face-to-face” to thank the many people who’ve contributed to the community. Our team, primarily based in Austin, Texas, grabbed our morning coffees and had the pleasure of meeting Alexandru Slobodciocv, now known to us as Alex, as his day was winding down.
Alex is a Senior Development Lead at Endava and calls Chișinău, Moldova home. “It’s a small country with the best wine and Java developers,” he said. What a winning combination! 🍷
In his free time, especially during quarantine, he’s learned to play piano and guitar so he can keep up with his young daughters. You can tell by the picture above that we sincerely enjoyed our time getting to know him! After all of his work on the extensions, it was meaningful to put the face and personality to the name we’ve seen and respected.
So why exactly were these particular extensions such a big deal?
Hey Google, does Liquibase work with NoSQL databases?
Liquibase is well known for its ability to treat database releases like other code releases and help speed database change management for relational databases. However, Liquibase has never been adapted to work with a NoSQL database… until now.
Journey to easier MongoDB database changes
Prior to creating the Liquibase extension, Alex tried several other tools including Mogock, Mongeez, Mongol, and migrate-mongo. Alex chose Liquibase because it was popular and actively maintained. He found it was the easiest way to manage MongoDB changes in the way that he wanted. He also enjoyed the fact that Liquibase was created to be extensible by the community and that changeset definition is so flexible with multiple changelog formats.
We know that just because Liquibase was made to be extensible does not mean that it was easy. It was a tremendous effort to create the first NoSQL extension for Liquibase. In the words of Robert Reeves, CTO at Liquibase, “It’s like performing triple bypass heart surgery.”
A high-level look at the difference between Liquibase for SQL vs. Liquibase for NoSQL
Standard integration points like Liquibase internal tracking (Databasechangelog* tables), Database Interface Implementations, etc. all applied and had to be implemented. But Alex also had to extend AbstractChangeLogHistoryService, LockService, and AbstractExecutor implementation. JsonNoSqlChangeLogParser also required some work as the existing one could not parse raw JSON for a parameter.
Even with a great functional start for Liquibase and Mongo, there is much to do! This is a great opportunity to contribute. Since much of the extension code is repeated due to the primary code being built for SQL vs. NoSQL, help with refactoring is welcome.
Interested in helping out with the MongoDB extension? Check out the open issues list. You can add more to the list or try and submit a PR to fix an issue.
Thank you, Alex, for your incredible contribution! We look forward to seeing many more Legends follow in your path. Continue the great work!