The pull request introduces the ability to use any Akka.NET-based source as a source for an Arcane stream. In an effort to decouple schema validation logic from the source and sink, thereby making the code more modular and facilitating the use of sources from third-party libraries, two wrapper interfaces have been introduced: ISchemaBoundSource and ISchemaFreeSource, along with their respective sinks.
Additionally, the introduction of these types allows the compiler to statically check that the source in the Arcane Stream uses the same schema as the sink does.
Additionally, this pull request introduces the ISchemaValidator interface. This can be used to validate that the data flow matches the schema between any stages, such as the output of ArcaneSource or the input of ArcaneSink
Part of https://github.com/SneaksAndData/arcane-framework/issues/5
Scope
The pull request introduces the ability to use any Akka.NET-based source as a source for an Arcane stream. In an effort to decouple schema validation logic from the source and sink, thereby making the code more modular and facilitating the use of sources from third-party libraries, two wrapper interfaces have been introduced:
ISchemaBoundSource
andISchemaFreeSource
, along with their respective sinks.Additionally, the introduction of these types allows the compiler to statically check that the source in the Arcane Stream uses the same schema as the sink does.
Additionally, this pull request introduces the
ISchemaValidator
interface. This can be used to validate that the data flow matches the schema between any stages, such as the output ofArcaneSource
or the input ofArcaneSink
Allowed sink and source connection types
Allowed conversions between schema bound sinks and sources
Checklist
latest
commit.