Skip to content

5.1.0

Latest

Choose a tag to compare

@cjbrooks12 cjbrooks12 released this 10 Jun 03:15

What's New Since 5.0.1

New Modules

Server-side (all experimental)

Module Summary
ballast-ktor-server Ktor plugin to run Ballast ViewModels natively inside Ktor server applications
ballast-autoscale Wraps a pool of ViewModels and dynamically scales worker count based on load — suited for server-side job processing
ballast-queue-core Persistent background job queue with retries, backoff, cancellation, checkpointing, and stored results
ballast-queue-viewmodel ViewModel wrapper around the job queue for familiar Ballast code patterns
ballast-queue-exposed-driver PostgreSQL-backed queue driver using Jetbrains Exposed (MySQL experimental)

Scheduler (split out and expanded from ballast-schedules)

Module Summary
ballast-scheduler-core Core scheduler infrastructure, independent of Ballast MVI — coroutine delay and cron-like polling executors
ballast-scheduler-viewmodel Integrates scheduler with ViewModels via SchedulerInterceptor to dispatch inputs on a schedule
ballast-scheduler-cron Full cron expression support using OCPS syntax
ballast-scheduler-android-alarmmanager Android AlarmManager-based persistent scheduler for exact-timing tasks when the app is backgrounded

Utilities

Module Summary
ballast-kotlinx-serialization Registers KSerializers once per ViewModel config so all plugins (debugger, queue, etc.) share them

Deprecations

  • ballast-repository — Marked deprecated. The MVI repository pattern is being phased out as it turned out to be a failed experiment.
  • ballast-schedules — Marked deprecated. Superseded by the new ballast-scheduler-* family of modules.
  • KillSwitch interceptor — Deprecated. Graceful shutdown is now a first-class API on BallastViewModel via AutoCloseable (close()) and SideJobScope.

API Changes

  • BallastEncoder / BallastDecoder — New unified serialization interfaces on the ViewModel config. Previously each plugin had its own serialization logic; now they all share one. ballast-kotlinx-serialization provides the implementation.
  • ballast-navigation — Added pathFormat() helper for sharing route definitions between Ktor client and server.

Documentation

The entire documentation system was overhauled — docs moved from an SSG/Orchid website into plain Markdown files living alongside the code:

  • docs/ is the new home for all Ballast documentation
  • Each module now has its own README.md co-located with the source code
  • Old Orchid/MkDocs build system and all generated pages removed