2021-03-06 19:19:13 +00:00
|
|
|
# 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.
|
|
|
|
|
2021-03-11 00:31:50 +00:00
|
|
|
![DB Architecture](figures/db_arch.svg)
|
|
|
|
|
2021-03-06 19:19:13 +00:00
|
|
|
## 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.
|