Diagrams
Modules and Packages composition
flowchart LR
subgraph Core_Layer["Core"]
subgraph Domain["Domain"]
A[Entities]
B[Events]
C[Result Pattern]
end
subgraph Application["Aplication"]
D[Use Cases]
E[Services]
L[Event Manager]
end
end
subgraph EconomyEngine_Layer["EconomyEngine"]
subgraph test["Packages"]
H[SQL/hibernate]
Z[Redis]
K[Api]
N[Yaml/files]
end
end
subgraph EconomyGUILib_Layer["EconomyGUILib"]
subgraph test3["Packages"]
a[Commands]
b[Placeholders]
c[GUI Pannels]
end
end
subgraph Infrastructure_Layer["Infraestructure"]
subgraph test2["Package adapters"]
F[Spigot]
G[Folia]
M[Paper]
I[Sponge]
J[Canvas]
end
end
Infrastructure_Layer -->|Use Module| EconomyEngine_Layer
EconomyEngine_Layer -->|Use Moudle| Core_Layer
EconomyEngine_Layer -->|Use Module| EconomyGUILib_Layer
Application -->|Use Package| Domain
Sequence Diagram Workflow Transactions
sequenceDiagram
autonumber
Bukkit/Sponge->>EconomyEngine: Send request transaction
EconomyEngine ->> Core: Send request
Core->>UseCase: Send request
UseCase->>Database: Send request
Database->>Database: Atomic transaction,TX
Note right of Database: 🔑 KEY OPERATION: <br/>Atomic Balance Update
Database-->>UseCase: Rquest Status
UseCase-->>Core: Request Status
Note over UseCase: Fire Domain Event <- On Success
Core-->>EconomyEngine: Request Status
EconomyEngine-->>Bukkit/Sponge: Request Status
Architecture domain events in distributed systems

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello mundito!");
}
}