diff --git a/docs/c4_library/C4_component.puml b/docs/c4_library/C4_component.puml new file mode 100644 index 0000000..fd894a9 --- /dev/null +++ b/docs/c4_library/C4_component.puml @@ -0,0 +1,50 @@ +@startuml Confident_Component +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Component.puml + +LAYOUT_TOP_DOWN() + +title + Confident Component diagram +end title + +Person(user, "User", "A user at MET that may want to run extra QC or integrate a new QC tests and see the outcome") +'System(new_obs_system, "LARD ingestor", "Automated system that triggers the QC that needs to run automatically") +System_Ext(obsinn, "Obsinn", "Entry point for new observations at MET") + +System_Ext(frost, "Frost", "Rest API") +SystemDb_Ext(lard, "LARD database", "Postgres database.") +SystemDb_Ext(lustre, "Lustre", "File system") +SystemDb_Ext(datasources, "Other data sources", "Other data sources needed for QC") + +'System_Boundary(Confident, "QC system for observations") { + 'Container_Boundary(rove, "ROVE") { + Container_Boundary(lard_ingestor, "LARD ingestor") { + Component(server, "HTTP server", "Rust", "HTTP server, receives new data") + Component(scheduler, "Scheduler", "Rust", "Schedules QC tests, routes data between the switch and harness") + Component(test_harness, "Test harness", "Rust", "Organises and runs QC tests, interfacing any differences in input or output shape") + Component(data_switch, "Data switch", "Rust", "Contains connector modules for all available data sources, and routes requests for data to them") + Component(pipelines, "Pipeline registry", "Rust", "Loads pipeline definitions from toml files and stores them") + } +'} + +'Rel_U(new_obs_system, kafka, "opens stream, and receives notifications of arrival of new data", "sarama") +Rel(obsinn, server, "Sends packets of new data", "HTTPS") +Rel(server, lard, "writes data and QC info to", "Postgres protocol") +'Rel(new_obs_system, server, "creates automated API calls to, and receives QC flags in return", "GRPC") + +Rel(server, scheduler, "requests tests to be scheduled", "function call") +Rel(scheduler, data_switch, "requests data needed for QC tests", "function call") + +Rel(data_switch, lard, "gets data needed by cache", "GRPC") +Rel(data_switch, lustre, "gets data needed by cache", "NFS") +Rel(data_switch, frost, "gets data needed by cache", "HTTPS") +Rel(data_switch, datasources, "gets data needed by cache") + +Rel(scheduler, pipelines, "requests the relevant pipeline", "function call") + +Rel(scheduler, test_harness, "requests QC tests to be run on provided data, and receives QC flags in return", "function call") + +'Rel(user, server, "creates manual API calls, and receives QC flags in return", "GRPC/HTTPS") +Rel_U(user, frost, "gets output of QC tests, or more general data quality information from", "HTTPS") +Rel(frost, lard, "gets QC data needed to satifsy API requests", "Postgres protocol") +@enduml diff --git a/docs/c4_library/Confident_Component.png b/docs/c4_library/Confident_Component.png new file mode 100644 index 0000000..61f7996 Binary files /dev/null and b/docs/c4_library/Confident_Component.png differ diff --git a/docs/c4_library/Confident_Component.svg b/docs/c4_library/Confident_Component.svg new file mode 100644 index 0000000..a406e57 --- /dev/null +++ b/docs/c4_library/Confident_Component.svg @@ -0,0 +1 @@ +Confident Component diagramConfident Component diagramLARD ingestor[container]«component»HTTP server[Rust] HTTP server, receives newdata«component»Scheduler[Rust] Schedules QC tests, routesdata between the switch andharness«component»Test harness[Rust] Organises and runs QC tests,interfacing any differences ininput or output shape«component»Data switch[Rust] Contains connector modulesfor all available data sources,and routes requests for datato them«component»Pipeline registry[Rust] Loads pipeline definitionsfrom toml files and storesthem«person»User A user at MET that may wantto run extra QC or integratea new QC tests and see theoutcome«external_system»Obsinn Entry point for newobservations at MET«external_system»Frost Rest API«external_system»LARD database Postgres database.«external_system»Lustre File system«external_system»Other data sources Other data sources neededfor QCSends packets of newdata[HTTPS]writes data and QC infoto[Postgres protocol]requests tests to bescheduled[function call]requests data neededfor QC tests[function call]gets data needed bycache[GRPC]gets data needed bycache[NFS]gets data needed bycache[HTTPS]gets data needed bycacherequests the relevantpipeline[function call]requests QC tests to berun on provided data,and receives QC flagsin return[function call]gets output of QC tests,or more general dataquality informationfrom[HTTPS]gets QC data needed tosatifsy API requests[Postgres protocol] \ No newline at end of file diff --git a/docs/C4_component.puml b/docs/c4_server/C4_component.puml similarity index 100% rename from docs/C4_component.puml rename to docs/c4_server/C4_component.puml diff --git a/docs/C4_container.puml b/docs/c4_server/C4_container.puml similarity index 100% rename from docs/C4_container.puml rename to docs/c4_server/C4_container.puml diff --git a/docs/C4_context.puml b/docs/c4_server/C4_context.puml similarity index 100% rename from docs/C4_context.puml rename to docs/c4_server/C4_context.puml diff --git a/docs/Confident_Component.svg b/docs/c4_server/Confident_Component.svg similarity index 100% rename from docs/Confident_Component.svg rename to docs/c4_server/Confident_Component.svg diff --git a/docs/Confident_Container.svg b/docs/c4_server/Confident_Container.svg similarity index 100% rename from docs/Confident_Container.svg rename to docs/c4_server/Confident_Container.svg diff --git a/docs/Confident_Context.svg b/docs/c4_server/Confident_Context.svg similarity index 100% rename from docs/Confident_Context.svg rename to docs/c4_server/Confident_Context.svg