Skip to main content

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-master
  • falcon-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_id
    • host
    • port
    • address
    • status
    • capacity
    • running_tasks
  • Protocol and worker status enums
  • Minimal command acknowledgement fields
  • Common metrics envelope fields

Protocol typing rule

ProtocolType is intentionally kept coarse and stable:

  • http
  • rpc
  • stream
  • message
  • database
  • transport
  • custom

Concrete protocol or engine names should be expressed through explicit fields such as:

  • protocol_name
  • engine_name
  • adapter_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-master
  • falcon-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.enums
  • falcon_interface.contracts
  • falcon_interface.grpc.generated

Compatibility-only modules kept during migration:

  • falcon_interface.runtime_enums
  • falcon_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.proto is the source of truth for the current runtime gRPC contract
  • falcon_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:

  • WorkerInfo stable identity and capacity fields
  • WorkerStatus
  • ProtocolType
  • 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

Metadata

Release files for falcon-interface 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for falcon-interface 0.1.0
File Size Uploaded Provenance Actions
falcon_interface-0.1.0.tar.gz 12.0 kB Without provenance Details for falcon_interface-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for falcon-interface 0.1.0
File Interpreter ABI Platform Actions
falcon_interface-0.1.0-py3-none-any.whl Python 3 none any Details for falcon_interface-0.1.0-py3-none-any.whl

Total release size: 25.5 kB

Release files / falcon_interface-0.1.0.tar.gz

Download URL falcon_interface-0.1.0.tar.gz
Size 12.0 kB
Tags Source
SHA-256 checksum
How to use checksums
6292adb3a667516518b434a3f88af2207f3c7016af5c894198388a490131f238
BLAKE2b-256 checksum
How to use checksums
0ee17958acdf181d7dc0c639823ed2e952383c1c34a526fbaecc4fc4bd774388
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.9

Release files / falcon_interface-0.1.0-py3-none-any.whl

Download URL falcon_interface-0.1.0-py3-none-any.whl
Size 13.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
756cd8bb782c1e8d193ca0ff44ce16fb477d0b7121b095008bb0c86968f48ba0
BLAKE2b-256 checksum
How to use checksums
f1bcc8037056a680a39f7edec1e875c3506164b2effd73d6adf3dfd0ea8e8c22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.9

Security for falcon-interface 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page