Geoffrey-rs/ARCHITECTURE.md

27 lines
981 B
Markdown

# Geoffrey Architecture
**Note: Geoffrey V3 is in early development, and its design is likely to change.**
![Geoffry Architecture](figures/arch.svg)
## Database
The database is the core storage of Geoffrey. All models will be stored here. It is tightly
coupled with the GeoffreyAPI.
![DB Architecture](figures/db_arch.svg)
## Geoffrey API
The API provides the main logic to how models are manipulated in the Database. It is split
into two parts, the Command API and Model API.
### Command API
This API will expose a set of commands that can be run to preform tasks in Geoffrey. The goal
is to keep all the command logic here so the command front-end are simpler to create.
### Model API
The Model API will provide a strict access to the underlying models of Geoffrey. It is
more suited for web interfaces or operations that do not need to be constrained by commands.
## Front Ends
The currently planned front ends are a Bukkit Plugin, a Discord Bot and the Web Interface.