aiidateam / aiida-core

The official repository for the AiiDA code
https://aiida-core.readthedocs.io
Other
415 stars 187 forks source link

Improving AiiDA terminology #5324

Open chrisjsewell opened 2 years ago

chrisjsewell commented 2 years ago

I feel the documentation is lacking a top-level "primer" of what aiida-core is/does (plus having this terminology permeate in the API code).

Something along the lines of:

AiiDA is a workflow engine framework, which provides five core capabilities:

  1. Storage: AiiDA automates the storage of generated calculation/workflow inputs, outputs, and the provenance between them. AiiDA also provides functionality for introspecting (querying) this data.
  2. Communication: AiiDA provides built-in functionality to communicate with external compute services (such as HPCs and cloud); automating data transfer and job scheduling.
  3. Processing: AiiDA provides an API for building and running complex workflows, composed of one or more computations, that can be run locally or externally. AiiDA also provides process persistance (check-pointing), meaning that running workflows persist in the event of lost connections or system reboots.
  4. Developer interface: AiiDA provides a plugin system, for developers to extend aiida-core with their own workflows, data types, HPC interfaces, etc.
  5. User interface: AiiDA provides both command-line and web-based APIs for starting, monitoring and introspecting workflows.

Storage

I have recently been streamlining the storage API (e.g. #5154, #5172, #5320, #5145, #5228). It is of note that, although we currently split storage into the PostgreSQL database and the disk-objectstore repository, this should not be a primary concern for "standard" users. I would explain the storage as something like the following:


Processing

The AiiDA daemon and RabbitMQ broker, both fall under this processing umbrella. I feel the terminology around this (daemons, workers, etc) is probably a bit confusing to "non-technical" users, and could be improved. Also, as per https://github.com/aiidateam/AEP/pull/30, it is quite possible that we will replace RabbitMQ in the future, so there should not be any terminology specific to that (e.g. broker) But more to come on this later...

soma2000-lang commented 2 years ago

@chrisjsewell Please assignme this.I would like to work on this

chrisjsewell commented 2 years ago

Hi @soma2000-lang, sorry for the late reply, what did you have in mind? I primarily wrote this down, whilst doing #5330, to collate some of my thoughts and circle back around to. But happy to collaborate