Skip to content

Commit 503e3f5

Browse files
authored
Merge pull request #38 from PhilanthropyDataCommons/1-add-architecture
Add architecture documentation
2 parents 62920b0 + a3817a5 commit 503e3f5

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

docs/ARCHITECTURE.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
2+
# Architecture
3+
4+
## Diagram
5+
6+
(This diagram is generated by [mermaid](https://mermaid-js.github.io/mermaid/#/./flowchart?id=flowcharts-basic-syntax))
7+
8+
```mermaid
9+
graph LR
10+
11+
subgraph GMS Access
12+
GMS_APIs((GMS APIs))
13+
GMS_Dumps[(GMS Data Dumps)]
14+
end
15+
subgraph Client Applications
16+
Scraper[[GMS Scrapers]]
17+
Ingester[[GMS Ingesters]]
18+
UX{{User Interfaces}}
19+
GMS[Integrated GMSs]
20+
Infomediaries[[Infomediaries]]
21+
end
22+
subgraph PDC Backend
23+
API((API))
24+
Database[(Data Store)]
25+
end
26+
subgraph External Services
27+
GMS_APIs((GMS APIs))
28+
GMS_Dumps[(GMS Data Dumps)]
29+
Auth((KeyCloak))
30+
Email((MailGun))
31+
end
32+
33+
GMS---API
34+
Infomediaries---API
35+
Scraper---GMS_APIs
36+
Scraper---API
37+
Ingester---API
38+
Ingester---GMS_Dumps
39+
API---Database
40+
API---UX
41+
API---Auth
42+
API---Email
43+
```
44+
45+
## Concepts
46+
47+
The core of the PDC is its API. All third party integrations and user interfaces are powered by that API.
48+
49+
* `GMS Scrapers` pull data from a GMS api on a regular basis and inject that data into the PDC.
50+
* `GMS Ingesters` are provided data by a GMS (e.g. in the form of batch exports) and inject that data into the PDC.
51+
* `Integrated GMSs` are GMSs that know how to inject data into the PDC directly.
52+
* `Infomediaries` are third party information sources, and might be scraped / ingested (TBD based on what we learn).

0 commit comments

Comments
 (0)