Skip to main content

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-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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

falcon_interface-0.1.0.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

falcon_interface-0.1.0-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

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

Hashes for falcon_interface-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6292adb3a667516518b434a3f88af2207f3c7016af5c894198388a490131f238
MD5 2833fc775b66935ff01521584dbe301c
BLAKE2b-256 0ee17958acdf181d7dc0c639823ed2e952383c1c34a526fbaecc4fc4bd774388

See more details on using hashes here.

File details

Details for the file falcon_interface-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for falcon_interface-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 756cd8bb782c1e8d193ca0ff44ce16fb477d0b7121b095008bb0c86968f48ba0
MD5 e099c8560eeeaff17675e4e07d15ea2e
BLAKE2b-256 f1bcc8037056a680a39f7edec1e875c3506164b2effd73d6adf3dfd0ea8e8c22

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page