vlingo / xoom-schemata

The VLINGO XOOM Schema Registry.
https://vlingo.io
Mozilla Public License 2.0
17 stars 9 forks source link

[Compiler] Add support for pluggable specification languages #125

Open wwerner opened 4 years ago

wwerner commented 4 years ago

Currently, we only support our own specification language/DSL. During the demo with the reactive foundation, the question for additional specification languages came up (JSON Schema was mentioned by Ryland).

I think we could fit it into the architecture quite nicely, since the DSL is decoupled from the generator and the validation by means of the AST.

If we also add a generator that spits out the Vlingo DSL, we could also implement versioning in a manner independently of the specification format by converting specs in other languages to the Vlingo DSL first and apply versioning to this normalized spec. But I haven't thought it through completly yet, I guess we need to take care not to break roundtrip workflows in this case

Vlingo Spec DSL ->          -> Java
JSON Schema ->              -> C#
Avro ->             AST     -> ...
Protobuf ->
                    / \
                     | 
                 Validation
                [Versioning]
VaughnVernon commented 4 years ago

@wwerner Include support for Avro and Protobuf definition languages.