Nexma

Connect a data source

Ingest with SyncEngine

This guide shows you how to bring an external data source into your project with Nexma SyncEngine, map it to your ontology types, schedule it to refresh, and confirm it renders on the Globe. You need a project with an ontology whose entity types the feed can map onto. The feed can be a file you upload, an API, or a live stream.

SyncEngine is the bridge between the outside world and your Nexma DataStore. Once a feed is connected, its data lands in the DataStore as typed entities, every view reacts, and Jax can read it through the same primitives it uses for everything else.

Steps

  1. Add the data source. Open the "Add data source" panel and pick the connection — an upload, an API endpoint with credentials, or a live stream. Spatial feeds land as GeoJSON; tabular feeds land as JSON. Either way the data is written to the DataStore.
Connect the parcels API at this endpoint and pull every parcel in the project bounds.
  1. Map the feed to ontology types. Tell SyncEngine which entity type each record becomes and which incoming fields map to which properties. This is what turns raw records into typed entities your Skills and validators understand.
Map each record to a parcel entity. Use apn as the id, acreage as area_acres, and zoning_code as zone.
  1. Let Jax fill the gaps. If a mapping is ambiguous or a field needs a transform, ask Jax to propose it rather than guessing.
The feed has lat/lng columns and no geometry. Build point geometry from them and map to service_connection.
  1. Schedule the sync. A one-time pull is fine for static reference data; for anything that changes, set a refresh cadence — hourly, daily, or on an event. SyncEngine keeps the DataStore current on that schedule without further input.
Refresh this feed every morning at 05:00 and flag any parcels that changed zoning.
  1. Verify on the Globe. Spatial feeds auto-render once they land. Confirm the features appear in the right place, in the right layer, with the right properties in the side panel. If they do not, the mapping is the first place to look.
  1. Query the feed through Jax. With the data typed and in the DataStore, Jax reads it like any other file — no special feed handling needed.
How many parcels in feeds/parcels.geojson are zoned residential and within the polygon I drew?

Tips

  • Map ids deliberately. A stable unique id per record lets SyncEngine update in place instead of duplicating on each refresh.
  • Match types before you connect — if the feed has no matching entity type, add one to the ontology first.
  • Start with a one-time pull to validate the mapping, then turn on the schedule once it looks right.
  • For high-rate streams, prefer event-driven refresh over a tight cron so the DataStore stays current without redundant pulls.

Where to go next

Connect a data source