Refer to src/infra/pi.rs
for details:
graph
Sourceable --get--> Source;
Source --get--> Reader
Sinkable --get--> Sink;
Sink --get--> Writer;
StorageConnector --impl--> Sourceable;
StorageConnector --impl--> Sinkable;
TransformationConnector --impl--> Sourceable;
TransformationConnector --impl--> Sinkable;
TransformationConnector --impl--> Executable;
Executable --get--> executor;
Sink
: sink is a file location/handler/… where you can get a Writer
from it.
Source
: source is a handler where you can get a Reader
from it.
StorageConnector
: Sinkable
+ Sourceable
TransformationConnector
: Sinkable
+ Sourceable
+ Executable
RedisConnector
: Sinkable
+ Sourceable
Neo4jConnector
: TransformationConnector
graph
Neo4j .- Neo4jConnector;
Neo4jConnector --get--> PageRankExecutor;
PageRankExecutor --exec--> Neo4jQuerySource;
PageRankExecutor --impl--> GraphComputationExecutor;
GraphComputationExecutor .-> Neo4jQuerySource;
Neo4jQuerySource --get--> Reader["Reader<Row>"];
Neo4jQuerySource --impl--> Source["Source<Row>"];
Source .-> Reader;
Redis .- RedisConnector;
RedisConnector --get--> RedisRowSink;
RedisRowSink --impl--> Sink["Sink<Row>"]
RedisRowSink --get--> Writer["Writer<Row>"];
Sink .-> Writer;
Reader .-data.-> Writer;