Avro allows records to be defined recursively. There is an example of a linked list in the Avro specification:
{
"type": "record",
"name": "LongList",
"aliases": ["LinkedLongs"], // old name for this
"fields" : [
{"name": "value", "type": "long"}, // each element has a long
{"name": "next", "type": ["null", "LongList"]} // optional next element
]
}
If I attempt to use a similar schema I get a stack overflow Exception: java.lang.StackOverflowError: null
I forked the repo to create a minimal reproduction of this error in the test suite:
afhole@8c86cc0
The results can be seen on CircleCI here:
https://app.circleci.com/pipelines/github/afhole/jackdaw/2/workflows/59ba5164-4489-40fe-8e49-fb9eb5b2319c/jobs/8
Is it feasible for Jackdaw to implement this feature? Are there any alternative ways to create a serdes that does support this (e.g. interop with Apache/Confluent modules)?
Avro allows records to be defined recursively. There is an example of a linked list in the Avro specification:
If I attempt to use a similar schema I get a stack overflow
Exception: java.lang.StackOverflowError: nullI forked the repo to create a minimal reproduction of this error in the test suite:
afhole@8c86cc0
The results can be seen on CircleCI here:
https://app.circleci.com/pipelines/github/afhole/jackdaw/2/workflows/59ba5164-4489-40fe-8e49-fb9eb5b2319c/jobs/8
Is it feasible for Jackdaw to implement this feature? Are there any alternative ways to create a serdes that does support this (e.g. interop with Apache/Confluent modules)?