Environment for Java Application to integrate with our app

As per requirements we would need to integrate OptaPlanner (https://www.optaplanner.org/) to optimize shifts on our app scheduler module. OptaPlanner needs to run on a Java Server (Wildfly, JBoss or similar). Can we provide a suitable solution? Thanks

Is this a customer requirement, or did we pick this solution?

It’s a customer requirement. She wants OptaPlanner as it’s the most advanced AI constraint manager for scheduling purposes.

@dmitrii.k Could you please investigate when you have a few cycles?

Also, @jorge.m does OptaPlanner have an API with which we can integrate? Do we need to set it up as a hosted application on our infrastructure?

@amador.jesus can give a better answer I guess

Optaplanner is like a java library, We need to create a springboot project who uses optaplanner

May I know how you’re planning on deploying this? Will you be setting up a Spring Boot project which exposes a set of REST endpoints to which your mobile app will connect? Exactly what kind of architecture are you proposing for this project?

@charath, if we run it as part of a dockerized SpringBoot project like @amador.jesus suggested, I don’t see any problems with it. Depending on whether the Django backend is used in this app, we may want to create another app to accommodate this.

Can you wrap this in Python and running in the existing app backend, rather than spinning up a separate server with API endpoints? Scheduling is compute-intensive so this will need to be a worker.

@anand, Docker supports only one process per container. With my limited understanding of OptaPlanner, it seems to be possible to write standalone java programs that use the OptaPlanner jar, and call them locally from the Django server.

@dmitrii.k @anand if we agree on that solution and @amador.jesus do not see any inconvenient we can go ahead with that

@jorge.m, you don’t need anything from us in this case. Just add the necessary packages to your Dockerfile and java code to your repository. I encourage you to test using Docker Compose.

Ok, many thanks @dmitrii.k, we will try that. If @amador.jesus can anticipate any inconveniences we will let you know to find any workaround.

1 Like