An open API service indexing awesome lists of open source software.

https://github.com/code0-tech/hercules

The action sdk to connect with aquila
https://github.com/code0-tech/hercules

Last synced: 10 days ago
JSON representation

The action sdk to connect with aquila

Awesome Lists containing this project

README

          

# hercules
The action sdk to connect with aquila

This action sdk is currently implemented in:
- [Typescript](./ts/README.md)

# GRPC Communcation Flow

## Connection Flow

```mermaid
sequenceDiagram
participant Hercules as Hercules (Client)
participant Aquila as Aquila (Server)
participant Stream as Stream (gRPC)

Hercules->>Aquila: Register datatypes
because maybe they are needed in the config definitions
Aquila-->>Hercules: Validation result

Hercules->>Aquila: Register function definitions
Aquila-->>Hercules: Validation result

Hercules->>Aquila: Register flow types
Aquila-->>Hercules: Validation result

Hercules->>Stream: Open bi-directional stream
Hercules->>Stream: ActionLogon request

Stream-->>Hercules: Receive action configurations
```

## Function execution flow

```mermaid
sequenceDiagram
participant Hercules as Hercules (Client)
participant Stream as Stream (gRPC)

Stream-->>Hercules: Receive execution request

Note right of Hercules: Hercules maps the request
with a registed function
and computes the result

Hercules->>Stream: Execution response
with computed result
```

## Event flow

```mermaid
sequenceDiagram
participant Hercules as Hercules (Client)
participant Stream as Stream (gRPC)

Hercules->>Stream: Event dispatch request
with project id and payload
```

# Test Server
To use a simple test server use the following command:

```bash
./bin/test_server.rb
```
This will start a test server on `localhost:50051` that you can connect to with the action sdk.
Watch out this test server isnt really working its just an way to test the connection.