Nano Solutions
Government & Public Safety

SLSA Live Patrol Tracking

SLSA Live Patrol Tracking

The Challenge

During an active rescue, the single most valuable piece of information is where the assets are. Which rescue craft is closest. Whether the vehicle has reached the access track. Where the jet ski went after it cleared the break.

Radio can answer those questions, but only by asking — which costs the operator's attention at exactly the moment it is most scarce, and only gives a snapshot.

Surf Life Saving needed live positions from GPS hardware on rescue craft and patrol vehicles, delivered to coordinators as they change, not on request. Two problems in one: reliably ingesting telemetry from field devices over patchy coastal mobile coverage, and pushing it to connected clients in real time without hammering the platform.

The Solution

We built the tracking layer of the SLSA Operations platform as two systems rather than one, and the split is deliberate.

Ingesting device telemetry

  • A dedicated tracker API, kept separate from the main application API so device traffic has its own surface, its own authentication and its own failure characteristics
  • Tracker and location as distinct concerns — a registered device is one thing, the stream of positions it reports is another, which keeps the position history queryable independently of the hardware that produced it
  • Position history retained, so a patrol's movements can be reconstructed after the fact for debriefing and incident review, not just watched live
  • Patrol positions tied into the wider operational model, connecting a moving asset to the patrol, beach and people it belongs to

Devices on the coast lose signal. Ingestion is built to accept batched and late-arriving positions rather than assuming a clean live stream.

Broadcasting it live

Real-time delivery runs on a separate socket server — its own repository, its own deployment, its own scaling profile. Putting websocket fan-out in the same process as the operations platform would mean a traffic spike in one degrading the other; separating them means a busy summer Sunday of live tracking cannot slow down incident reporting.

That tier is shared across the estate rather than built for tracking alone, and it has its own case study: SLSA Realtime Broadcast Server.

Channel authorisation is explicit: subscriptions are authorised per channel, so a coordinator sees the assets they are entitled to see and no more. That authorisation logic is a meaningful piece of the system, not an afterthought — position data for volunteers is personal data.

Operable by the people who run it

Trackers, locations and patrol positions are all exposed through the platform's administration interface, so devices can be registered, reassigned and diagnosed by operations staff without a developer.

The Results

  • More than 3.5 million position records captured — a continuous operational record running since 2018
  • Almost 600 tracked devices registered across the country
  • Seven years of continuous operation, from the first tracked craft to today
  • Live asset positions delivered to coordinators as they change, not on request
  • Telemetry ingestion isolated from the main application API, so device traffic and user traffic fail independently
  • Realtime broadcast on dedicated infrastructure, deployed and scaled separately from the platform
  • Per-channel authorisation so volunteer location data is only visible to those entitled to it
  • Replayable history — every rescue can be reconstructed afterwards for debriefing and review

What that means commercially

Three and a half million position records means seven summers of operational decisions made on this data, on hardware sitting in salt water, over coastal mobile coverage. The engineering that matters at that scale is not the map — it is accepting late and batched data without corrupting the record, and keeping realtime fan-out on infrastructure that cannot take the rest of the platform down with it.

Technology

Laravel with a dedicated tracker API surface, GPS tracker and location models with retained position history, and event broadcasting over a standalone websocket server maintained as its own service. Explicit per-channel broadcast authorisation. Administration through Laravel Nova. Deployed via Docker and GitLab CI, operated by Nano Solutions.

See also: SLSA Operations App — the platform this tracks for, and SLS Beach Management — where the tracked assets are managed.


Related Nano Solutions services: Software Development · Cloud Maintenance · Systems Integration. WA government agencies can engage us directly through our CUAICTS2021 panel listing.