Technical stack

Battle-tested JVM tooling. No exotic frameworks. Every component is the canonical choice for its role in an enterprise data centre.

Control plane

ComponentRoleNotes
Java 17RuntimeLTS, modern records, sealed types, virtual threads where applicable.
Spring Boot 3.xService frameworkAuto-configuration, actuator probes, JSON rolling logs, OAuth2 resource server.
Spring CloudConfig / discoveryCentralised config (`tasksense-config-service`), discovery via Eureka or Kubernetes-native.
Hibernate / JPAPersistenceJOINED inheritance for the SchedulerDefinition hierarchy; lazy fetch on heavy collections.
Quartz cronCron parsingL, W, #, MONL extensions — "last weekday of month" patterns out of the box.

Frontend

ComponentRoleNotes
Angular 19SPA frameworkStandalone components, signals, schema-driven schedule forms.
TypeScript 5.5LanguageStrict mode, OpenAPI-generated clients per service.
Angular Material 19UI primitivesForm fields, dialogs, chip lists, button toggles, datepickers.
Worktile GanttSchedule previewLive next-N firings rendered as a Gantt with simulated duration / jitter / drift.
ngx-mat-timepickerTime pickingClock-face HH:mm picker for execution time + anchor time.

Messaging & storage

ComponentRoleNotes
Apache KafkaEvent busExecution dispatch, snapshot streams, audit topic. Topic-prefix per concern.
SolaceAlternate brokerDrop-in replacement for Kafka where Solace is the enterprise standard.
MQTTEdge messagingFor IoT-style runner deployments at field locations.
MySQL 8Relational storeSchedules, events, executions, audit, userdata. UTF8MB4.
MinIOBlob storePer-execution log capture (append-only object per run).
Chronicle QueueOff-heap eventsOptional in-process queue for sub-millisecond runner pickup paths.
Chronicle MapOff-heap cacheFor runner-registry hot-path lookups.

Connectors

FamilyProtocolsNotes
NetworkSSH · TCP · UDPFor shell command execution and raw socket interactions.
WebHTTP · HTTPS · REST · SOAPOAuth2 / mTLS support; XML and JSON payloads.
SpecialisedAvailable via runner SPIDomain-specific protocols (e.g. network-element configuration) ship as fat-jar runners — bring your own.
FileFTP · SFTPBulk transfer + scheduled pickups.
MessagingKafka · Solace · MQTTPublish to / subscribe from external buses.
DatabaseJDBCAny JDBC-compatible engine; query / update / extract.

Operations

ComponentRoleNotes
DockerContainer runtimeService-per-container; health-probed; JSON log driver.
KubernetesOrchestratorHelm charts ready; horizontal autoscaling on CPU + queue depth.
Apache HTTPDReverse proxyTLS termination, vhost-per-tenant pattern, certbot auto-renewal.
PrometheusMetricsJVM + custom per-task metrics; Grafana dashboards optional.
Spock + GroovyTest framework≥90% coverage gate on backend code; data-driven tables for calculator specs.
← Back to home