Stable external contracts and protocol definitions for Falcon.
Project description
falcon-interface
falcon-interface is the stable external contract package for Falcon.
It is intended to hold only versioned, backward-compatible protocol definitions and cross-boundary data contracts shared by:
falcon-masterfalcon-worker- future Falcon SDKs
- third-party workers and adapters
This package should not depend on internal ORM models, service-layer logic, or platform-only implementation details.
Stability policy
falcon-interface is divided into two categories:
- Stable core: fields and contracts that are expected to remain backward compatible across master, worker, SDK, and third-party adapters.
- Experimental surface: fields kept for current implementation compatibility but not yet considered frozen.
Stable first candidates
- Worker core identity and capacity:
worker_idhostportaddressstatuscapacityrunning_tasks
- Protocol and worker status enums
- Minimal command acknowledgement fields
- Common metrics envelope fields
Protocol typing rule
ProtocolType is intentionally kept coarse and stable:
httprpcstreammessagedatabasetransportcustom
Concrete protocol or engine names should be expressed through explicit fields such as:
protocol_nameengine_nameadapter_name
This avoids expanding the stable enum every time a new protocol, adapter, or engine is added.
Naming examples
-
HTTP builtin worker
protocol = "http"protocol_name = "http"engine_name = "builtin"
-
gRPC builtin worker
protocol = "rpc"protocol_name = "grpc"engine_name = "builtin"
-
MQTT adapter
protocol = "message"protocol_name = "mqtt"engine_name = "builtin"adapter_name = "falcon-adapter-mqtt"
-
Locust-based HTTP worker
protocol = "http"protocol_name = "http"engine_name = "locust"adapter_name = "falcon-adapter-locust"
-
MySQL pressure worker
protocol = "database"protocol_name = "mysql"engine_name = "builtin"
Experimental fields
- Worker capability details
- Worker runtime snapshot structure
- Task execution plan structure
- Protocol-specific metric extension payloads
- Event summary payload shape
Package boundary
falcon-interface should be the only shared dependency between:
falcon-masterfalcon-worker- future Falcon SDK packages
- third-party workers and protocol adapters
It should not depend on, or expose, any of the following:
- ORM models
- database identifiers and audit fields
- service-layer exceptions
- platform-specific scheduler internals
- UI/report DTOs
Public surface
Preferred public imports:
falcon_interface.enumsfalcon_interface.contractsfalcon_interface.grpc.generated
Compatibility-only modules kept during migration:
falcon_interface.runtime_enumsfalcon_interface.task_contracts
These compatibility modules exist to let the current built-in master/worker run without forcing a one-shot refactor. They should not be treated as the long-term SDK surface for external integrators.
Proto source of truth
proto/worker_runtime.protois the source of truth for the current runtime gRPC contractfalcon_interface/grpc/generated/contains generated Python bindings- Generated files should be replaced from proto, not edited by hand during normal evolution
Current freezing strategy
Freeze first:
WorkerInfostable identity and capacity fieldsWorkerStatusProtocolType- minimal command acknowledgement shape
- metrics common envelope core
Keep experimental for now:
- task execution plan details
- protocol-specific metrics extensions
- event summary payload structure
- capability and runtime snapshot detail payloads
Design rules
- Only add fields, never rename or remove stable fields in-place
- Do not leak ORM, database, or service-layer implementation concepts
- Keep protocol-neutral contracts in the stable core
- Move protocol-specific or engine-specific details into explicit extension blocks
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file falcon_interface-0.1.0.tar.gz.
File metadata
- Download URL: falcon_interface-0.1.0.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6292adb3a667516518b434a3f88af2207f3c7016af5c894198388a490131f238
|
|
| MD5 |
2833fc775b66935ff01521584dbe301c
|
|
| BLAKE2b-256 |
0ee17958acdf181d7dc0c639823ed2e952383c1c34a526fbaecc4fc4bd774388
|
File details
Details for the file falcon_interface-0.1.0-py3-none-any.whl.
File metadata
- Download URL: falcon_interface-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
756cd8bb782c1e8d193ca0ff44ce16fb477d0b7121b095008bb0c86968f48ba0
|
|
| MD5 |
e099c8560eeeaff17675e4e07d15ea2e
|
|
| BLAKE2b-256 |
f1bcc8037056a680a39f7edec1e875c3506164b2effd73d6adf3dfd0ea8e8c22
|