Deciding on v3 vs v4 for real business case


#1

Hello everyone,

I am new to the community and part of a small team that evaluates the business case of voice assistants for a large company. Part of our work is to evaluate technical frameworks as well.

We implemented our example use case using Jovo v4 in the last weeks and in the end came back to the question: Is Jovo v4 already stable enough for enterprise usage or should we stick to v3 for now?

To explain our concern a little bit more: In general we are convinced that v4 is the far better approach when it comes to concepts and architecture. We really like the componed-based architecture and the concepts behind the model approach.

However, apart from some minor bugs (which we were able to solve by browsing though the github issues), we found that there is still a lot of boilerplate code missing i.e. in our use case for Alexa account linking or progressive response (we implemented the latter manually - so it is possible but that’s work we expect a framework to handle for us). Another concern is about the support for the google platform. As far as we understood, v4 does not support dialogflow anymore but conversational actions. However, conversational actions is marked as alpha when looking at the github repo of the model project. We implemented a small example and were able to deploy the model to the Actions Builder but we are not sure if concepts like scenes are already supported. We did not find a way to make v4 work with dialogflow again.

Please do not understand me wrong. The Jovo team is doing a great job and we are sure that Jovo v4 has a great future! Nevertheless our question is: If you were a global company with a serious business use case that requires a stable solution would you already go with Jovo v4 or still stick to v3?

Cheers,
Thomas


#2

Hi @Thomas_Frenken, welcome to the Jovo community :tada:

I know I’m biased, but I’ll try to add a few thoughts.

We’re already using v4 for a few large projects that are deployed across platforms like Alexa, Google Assistant, Facebook Messenger, and Google Business Messages. Other members of the community also have production enterprise apps built with Jovo v4.

I agree that we lack some example code. We’re working on adding more and just added a site for this to the website: https://www.jovo.tech/examples

One main difference compared to v3 is, that v4 is way easier to extend without having to make changes to the Jovo core code or create plugins. Here are a few examples:

  • Output: You can add any platform specific response property using nativeResponse. Example Alexa docs
  • Handlers: By using the @Handle decorator, you can react to any type of request

When we’re adding platform specific features to v4, we use the same concepts. These implementations can be seen as “convenience classes” that are supposed to help people get used to the new structure of the framework. For example, for Alexa In-Skill Purchasing we offer @Handle decorators and output classes, but show in the documentation that these classes can also be created and modified without relying on our implementations.

This new architecture means that v4 is also more future-proof. If the platforms add more features (e.g. new request types or response directives), you can use them right away without them having to be added to the framework and published first.

Yes, Google hasn’t been promoting Dialogflow for Google Assistant development for almost 2 years now, if I remember correctly. We strongly recommend using Google Conversational Actions.

We’ll take a look at the jovo-model repo, thanks for flagging that this is still marked as alpha (cc @AlexSwe). The implementation does work though and we’re using it in a number of projects.

Thank you for your feedback! It is a great idea to start a discussion like this. Overall, I would not recommend starting a new project with v3 because it uses an outdated approach and won’t be updated with new features (at least by the core team).

We’ve moved a few larger projects from v3 to v4 and now have a significantly more robust, smaller, and cleaner code base.


#3

Good to hear more v4 examples are being provided. I still need to migrate my toy from v3… but since the examples didn’t exist last time I looked, I’m staying with v3 until the first release of my code is complete. One set of complications at a time.