# System Architecture

![](https://1103701699-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lk4c5V-JXuVKRYCJWrb%2F-MVMY54GsFfljuOMdfY4%2F-MVMY9WNnpEmvTF69v9j%2FMedCo%20System%20Architecture.png?alt=media\&token=83cb65fb-a9c6-4511-ae72-aca1fddd3b2b)

### Containers

#### medco-connector

Component orchestrating the MedCo query at the clinical site. Implements the resource-side of the PIC-SURE API. It communicates with *medco-unlynx* to execute the distributed cryptographic protocols. [Sources on GitHub](https://github.com/ldsec/medco-connector).

#### medco-unlynx

The software executing the distributed cryptographic protocols, based on Unlynx. [Sources on GitHub](https://github.com/ldsec/medco-unlynx).

#### glowing-bear-medco

Nginx web server serving Glowing Bear and the javascript crypto module. [Sources on GitHub](https://github.com/ldsec/glowing-bear-medco).

#### medco-loader

ETL tool to encrypt and load data into MedCo. [Sources on GitHub](https://github.com/ldsec/medco-loader).

#### i2b2

The i2b2 stack (all the cells). [Project website](https://www.i2b2.org/).

#### keycloak

OpenID Connect identity provider, providing user management and their authentication to MedCo. [Project website](https://www.keycloak.org/).

#### postgresql

The SQL database used by all other services, contains all the data. [Project website](https://www.postgresql.org/).

#### pg-admin

A web-based administration tool for the PostgreSQL database. [Project website](https://www.pgadmin.org/).

#### nginx

Web server and (HTTPS-enabled) reverse proxy. [Project website](https://www.nginx.com/).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ldsec.gitbook.io/medco-documentation/v2.0.0/developers/system-architecture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
