Docs
  • Solver
  • Models
    • Field Service Routing
    • Employee Shift Scheduling
    • Pick-up and Delivery Routing
  • Platform
Try models
  • Timefold Solver SNAPSHOT
  • Using Timefold Solver
  • Building a service (Preview)
  • Edit this Page

Timefold Solver SNAPSHOT

    • Introduction
    • PlanningAI concepts
    • Getting started
      • Overview
      • Embed as a library
        • Hello World Guide
        • Quarkus Guide
        • Spring Boot Guide
      • Run as a service (Preview)
    • Example use cases
      • 🚚 Vehicle Routing (Guide)
      • 🧑‍💼 Employee Scheduling
      • 🛠️ Maintenance Scheduling
      • 📦 Food Packaging
      • 🛒 Order Picking
      • 🏫 School Timetabling
      • 🏭 Facility Location
      • 🎤 Conference Scheduling
      • 🛏️ Bed Allocation
      • 🛫 Flight Crew Scheduling
      • 👥 Meeting Scheduling
      • ✅ Task Assigning
      • 📆 Project Job Scheduling
      • 🏆 Sports League Scheduling
      • 🏅 Tournament Scheduling
    • Using Timefold Solver
      • Using Timefold Solver: Overview
      • Configuring Timefold Solver
      • Modeling planning problems
      • Running Timefold Solver
      • Benchmarking and tweaking
      • Building a service (Preview)
        • REST API
        • Service Model and Enricher
        • Constraint weights (optional)
        • Demo data (optional)
        • Exposing metrics (optional)
    • Constraints and score
      • Constraints and Score: Overview
      • Score calculation
      • Understanding the score
      • Adjusting constraints at runtime
      • Load balancing and fairness
      • Performance tips and tricks
    • Optimization algorithms
      • Optimization Algorithms: Overview
      • Construction heuristics
      • Local search
      • Exhaustive search
      • Neighborhoods: A new way to define custom moves
      • Move Selector reference
    • Responding to change
    • Integration
    • Design patterns
    • FAQ
    • New and noteworthy
    • Upgrading Timefold Solver
      • Upgrading Timefold Solver: Overview
      • Upgrade from Timefold Solver 1.x to 2.x
      • Upgrading from OptaPlanner
      • Backwards compatibility
      • Migration Guides
        • Variable Listeners to Custom Shadow Variables
        • Chained planning variable to planning list variable
    • Plus/Enterprise Editions
      • Installation
      • Performance improvements
      • Score analysis
      • Recommendation API
      • Nearby selection
      • Multithreaded solving
      • Partitioned search
      • Constraint profiling
      • Multistage moves
      • Throttling best solution events

Building a service (Preview)

This page describes features which are only relevant when running Timefold Solver as a Service (Preview). The information on these pages may describe functionality which may be changed or even removed in a future release.

Run dataset optimization as a fully isolated service. This opinionated approach builds on Quarkus and eliminates the boilerplate typically needed to expose a solver over a REST API.

If you haven’t done so yet, start with the Getting started: building a service guide.

1. Foundations still apply

Building a service does not replace the core Timefold Solver concepts, it builds on top of them. Everything covered in the following sections is still relevant and applies directly to your service model:

Using Timefold Solver

How to model your planning problem, configure the solver, and understand the solving lifecycle. This knowledge is required regardless of whether you embed the solver as a library or run it as a service.

Constraints and Score

How to define hard and soft constraints, choose a score type, and analyze solution quality. Constraint streams and score calculation work identically in a service model.

The pages in this section cover only what is specific to running the solver as a service: the REST API contract, model enrichment, constraint weight overrides, demo data, and metrics.

  • © 2026 Timefold BV
  • Timefold.ai
  • Documentation
  • Changelog
  • Send feedback
  • Privacy
  • Legal
    • Light mode
    • Dark mode
    • System default