Channel Management Framework update June 2020
This is a quick blog post to keep everybody appraised of the progress of the Channel Management Framework.
Before I get to the meat of the update, I'd like to offer a word of thanks to some people who are very important to me, and without whom this would not have been built. To Donnacha, Rodrigo, Aladar, Iuri, and Mark. It's your faith, vision and encouragement that has helped me to find the energy to push this thing forward. To all of you, thank you.
I'm incredibly happy I am with how this work has progressed. It's been a mammoth task, it's taken a year and a half, thousands of hours and resulted in thousands of lines of new code and oodles of new functionality. This is some of the best code I've ever written and I believe that it supplies the foundation needed for the next 15 years of Jomres' future.
When you first start creating a new project, you spend a lot of time formulating a picture of it in your mind. How can you make this useful to the majority of the users? How can you make it easy to use? What benefits can it bring? What are the possible pitfalls?
The picture in your mind seems daunting at the beginning, and you spend much more time musing than you do actually creating code. Eventually however you start to nibble away at the problem, breaking things down into bitesized pieces that you can work on.
Then, throughout the development process this picture evolves and changes. While in the shower, walking the dogs or while stuck at the side of the road when the battery of your bike has failed, kernals of ideas that have been brewing at the back of your mind start to filter to the front of it. The new ideas prompt you to restructure other areas of the project, simpifying some parts while adding functionality at the same time. Eventually you arrive at a solution, or in this case a set of solutions, that are the missing pieces of the puzzle and that fill in the picture that you had back at the beginning.
Right now, that picture is 100% complete in my mind.
On with the update...
CMF REST API
If you've been following my blog posts, you'll know that the CMF API plugin is the cornerstone of all of the new functionality. It's the interface between the Jomres Core and the rest of the Channel Management Framework.
This plugin should now be considered Release Candidate.
Beds24 are pushing forward with their own functionality to connect to Jomres exclusively through the CMF REST API, which has been extremely helpful to me, and the Jomres Thin plugins ( currently Rentals United & Jomres2jomres) use it to talk to Jomres Core. While I consider it mostly feature complete, that doesn't mean that there's nothing else to do and that I can sit back on my laurels. For now I will continue to work with my partners to ensure that it's stable and reliable but I will also continue to revise the endpoints it offers as demands evolve.
There are other areas where the CMF REST API can benefit existing users. I hope, in the coming months, to begin work on some new plugins that will use the endpoints it provides to improve the current Jomres UI with simplified functionality that they can use when managing their properties. I'm also hoping that 3rd party developers will embrace that side of things, which will free me up to focus on thin plugins.
Jomres2jomres thin plugin
If you're not familiar with Jomres2jomres, it's functionality that allows you to share properties, including pricing, reviews and availability between Parent and Child Jomres installations. It's absolutely unique, as far as I can see no other online booking engine offers a tool like it. It has the potential to radically alter the online booking landscape because developers can build networks of Jomres based sites. This reduces their reliance on the big OTAs and increases their chances of direct bookings. In the post-Coronavirus world this will be a massive advantage.
This plugin has generated the most interest among my users, in fact several Lifetiime users, who I hadn't heard from in years have popped out of the woodwork recently to get involved with Beta testing. That's both exciting and telling because it shows me that this new feature is something that people have been waiting for.
Jomres2jomres should now be considered Beta
The tool is functional, properties, bookings, pricing and reviews can all be pulled by Child sites from the Parent and the Child properties updated by analysing Parent site webhook events. Because the changelog only reports the last 2 weeks of webhook events this means that the Parent property needs to have been created fairly recently to fully populate the Child property. This 2 week threashold may be too short for some sites and I may need to add a new endpoint to the CMF REST API to specifically pull property configuration data that is older.
In the current iteration a Parent can have many Children, but a Child can have only one Parent.
Changes on the Parent are currently imported to Child installations when Child scheduled tasks are triggered. Right now, this is every quarter of an hour. Functionality exists in the REST API to register Child installations on the Parent site and I'd like to extend functionality so that when a Parent is updated, then it triggers all Children to pull the update immediately.
Updates are managed in two stages. One scheduled task pulls the update from the Parent and adds the event to a queue. The second scheduled processes that queue event, including more details update information from the Parent. This means that if update events cannot complete successfully then these events shouldn't block other update events.
Rentals United thin plugin
I had initally planned for this to be the first thin plugin to be completed, and had tentatively thought that I would have it ready for Beta testing by the end of this month (June, 2020). Coronavirus however put several barriers in my way and I had to put it aside for a few weeks. I then switched my attention to Jomres2jomres. Now that Jomres2jomres is undergoing Beta testing, I have been able to return to the Rentals United thin plugin and this weekend I was able to get it to Beta state for my users to experiment with.
If you are one of my users who has been waiting with bated breath for this to appear, you can breathe easily.
So, to wrap things up, as you can see development continues at a frenetic pace. I'm really excited with the progress that has been made over the last few months.
Now, it's your turn.
- Created on .