Core Concepts
- Client:
NexlaClientorchestrates authentication and request lifecycle; seenexla_sdk/client.py. - Credentials:
CredentialsResourceprovides reusable access to external systems and is referenced by sources and destinations. - Resources: High-level managers for flows, sources, destinations, nexsets, lookups, users, organizations, teams, projects, notifications, and metrics (
nexla_sdk/resources/*). - Models: Pydantic request/response schemas (
nexla_sdk/models/*) keep payloads type-safe and serializable. - Errors: A rich hierarchy (
nexla_sdk/exceptions.py) surfaces context such as operation, resource type, and retry hints. - Telemetry & Pagination: Optional OpenTelemetry spans wrap HTTP calls, and every resource inherits consistent pagination helpers.
Flow Topology
flowchart LR
Credentials["Credential\n(/data_credentials)"]
Source["Source\n(/data_sources)"]
Transform["Transform Step\n(Nexset.transform)"]
Nexset["Nexset (Dataset)\n(/data_sets)"]
Destination["Destination\n(/data_sinks)"]
Monitor["Metrics & Runs\n(/metrics, flow runs)"]
Credentials -->|data_credentials_id| Source
Source -->|flow graph| Transform
Transform --> Nexset
Nexset --> Destination
Source -.-> |detected data_sets| Nexset
Nexset --> Monitor
Destination --> Monitor
- Credentials secure connection details and can be probed for structure/sample data (
client.credentials.probe_*). - Sources ingest data using a connector
source_type/connector_typeand emit discovered nexsets; seenexla_sdk/models/sources/responses.py. - Transforms live on nexsets via
NexsetCreate.transformand define schema-mapping logic before data is published downstream. - Destinations subscribe to nexsets and push data to sinks (
sink_type). - Flows stitch nodes (source → nexset(s) → destination) and expose run metrics via
client.flows.list(include_run_metrics=True)andclient.metrics.*.