Skip to content

Document the actual PHP Avro value boundary and producer error #423

Description

@rmcdaniel

Problem

The polyglot codec guide implies that plain PHP stdClass values are safe at the v2 payload boundary and says producer-side adaptation failures raise WorkflowPayloadDecodeException. The fixed Avro Value encoder accepts arrays/string-keyed maps but rejects stdClass and other arbitrary objects with an encode-time InvalidArgumentException diagnostic. A PHP workflow author following the guide can therefore choose an unsupported value and receive a different failure than documented.

Acceptance criteria

  • Describe the PHP values that can cross the fixed Avro Value boundary and the required adaptation for stdClass and arbitrary objects.
  • Distinguish producer-side encode failures from consumer-side decode failures using the actual public exception behavior.
  • Keep the PHP guidance symmetric with the Python/Rust adapter guidance without prescribing brittle headings or paragraph layout.
  • Add focused behavioral coverage, or bind existing coverage, for array success and object rejection so future documentation updates have an authoritative contract.

Delete when

Delete when a PHP author can select a supported value and understand the observed encode failure from the polyglot guide, with the described behavior pinned by product tests.

Metadata

Metadata

Assignees

No one assigned

    Labels

    authority:githubGitHub is the authoritative lifecycle record for this workbeta:compatibleMay be completed without changing the frozen beta contractkind:defectA public product behavior is incorrectpriority:P2Normal-priority product workrepo:workflowOwned by the Workflow engine repositorystatus:readyReady for implementation

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions