adr-018: snake_case wire/events (AEP conformance; reverses camelCase draft) - #13
Merged
Merged
Conversation
…draft) Revises ADR-018 from camelCase to snake_case for the wire and event payloads, to match the UDLM data-model casing reversal (UDLM naming-conventions §4) and conform to AEP (aep.dev, the dcm-project team's adopted API standard, snake_case). UDLM is consumed natively (canonical data model) → the model IS the wire form → one casing; the AEP-bound API forces snake_case. Native consumption + AEP jointly settle it. The camelCase first draft was based on research that hadn't accounted for AEP. - Wire/event payloads snake_case; Go uses snake json tags; Python Pydantic maps attribute→wire directly (the `alias_generator=to_camel` requirement is removed). - CloudEvents envelope + dot-notation topics unchanged (orthogonal to payload casing). - Casing only changes at an export adapter to a foreign domain (e.g. K8s CRD). - adr/README.md row updated. (Corroboration: DISCUSSION-TOPICS records the dcm-project team's own established pattern as snake_case — the reversal aligns us.) Companion to croadfeldt/udlm#11. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Revises ADR-018 from camelCase to snake_case for wire + event payloads, matching the UDLM data-model casing reversal (companion: croadfeldt/udlm#11) and conforming to AEP (
aep.dev, snake_case).Why
UDLM is consumed natively (canonical data model) → the model is the wire form → one casing. DCM's API is AEP-bound (lint-enforced), and AEP's fields are snake_case. Native-universal consumption + AEP jointly force snake_case. The camelCase first draft hadn't accounted for AEP.
Corroboration:
architecture/DISCUSSION-TOPICS.mdalready records the dcm-project engineering team's own established pattern as snake_case (it flags PR #18's camelCase as contradicting the team) — so this reversal aligns us with both AEP and the team.Changes
jsontags; Python Pydantic maps attribute→wire directly — thealias_generator=to_camelrequirement is removed (simpler).adr/README.mdADR-018 row updated.No code in this PR (ADR + index only); the existing OpenAPI specs are already snake_case.