// the find
TimefoldAI/timefold-solver
The open source Solver AI for Java and Kotlin to optimize scheduling and routing. Solve the vehicle routing problem, employee rostering, task assignment, maintenance scheduling and other planning problems.
Timefold Solver is a constraint satisfaction and optimization solver for Java/Kotlin, forked from Red Hat's OptaPlanner in 2023 by the same team. It handles NP-hard scheduling and routing problems — vehicle routing, employee rostering, job shop scheduling — using metaheuristics like tabu search and simulated annealing. Target audience is enterprise Java shops with real planning problems, not hobbyists.
The Constraint Streams API is the standout feature — it lets you express constraints as incremental, reactive streams rather than recalculating the full score on every move, which makes large problem spaces tractable. Shadow variables and cascade updates are genuinely well-designed: derived state stays consistent without manual bookkeeping. The score analysis and ConstraintVerifier testing utilities are production-quality — you can unit test individual constraints in isolation without spinning up a full solver. Active commit cadence (daily as of June 2026) from a team that shipped OptaPlanner for years means this isn't abandonware.
The community/plus/enterprise edition split is a real trap: the open-source tier is Apache-2.0, but meaningful features for production use (multi-threaded solving, Nearby Selection for large routing problems) require a commercial license. The annotation-heavy domain model — @PlanningSolution, @PlanningEntity, @PlanningVariable scattered across your own classes — creates tight coupling between your domain and the solver internals; refactoring hurts. Configuration is XML or programmatic via deeply nested config objects, which feels like 2015 Spring XML era. Python/JavaScript users get nothing — this is Java/Kotlin only, so the 'AI solver' branding overstates the breadth.