# Quarkus Framework Project ## Project Background ###### Pre-Requisite: [Introduction to Play 2.5](/DTWKk_JATk-0rm6ClED08Q), [Introduction to Quarkus](/xSbuep1OR6-NQoIAS_sJoA) Currently, all Java applications in Ninja Van are built using the [Play 2.5 Framework](https://www.playframework.com/documentation/2.5.x/). However, due to increasing usage of the applications, we need to migrate to another framework that is more scalable and stable. Specifically for Script Engine, a crucial part of the requirement is polyglot programming (running js on Java). Critical endpoint: the endpoint that runs js on Java. Graal XX, anything to do with the scripts. ## Current Stack (Must-haves in the new stack) ###### Source: [NV Tech Stack](https://confluence.ninjavan.co/display/NVE/Technology+stack+overview) * Artifact Repository: Nexus * Cache: Hazelcast, Redis * ORM: Hibernate * Build tool: ==sbt== * Message Queuing : Kafka * Container Orchestration: K8s * Testing: Mockito ## Additional Requirements * Documentation: OpenAPI + Swagger ## Technical Challenges * Quarkus currently only supports Maven and Gradle (no sbt). * [Quarkus plugins](https://plugins.jetbrains.com/plugin/13234-quarkus-tools/) are available on IntelliJ IDEA Ultimate 2018.3+ (latest is 2019.3+). Currently, license is provided for 2018.1. ## New Stack: * Artifact Repository: Nexus * Cache: Hazelcast, Redis * ORM: Hibernate * Build tool: ==Maven== * Message Queuing : Kafka * Container Orchestration: K8s, Jib * Testing: Mockito * Documentation: OpenAPI + Swagger ## Quarkus Script Engine * Here is the copy of [Confluence document](/dSljYhliSJmDZHCbWFWoFg)