Skip to content

chore(docs): converting architecture diagram to ascii #111

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 25, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 51 additions & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,57 @@ By leveraging waPC, WebAssembly Functions can interact with Tarmac's core capabi

To provide a streamlined developer experience, Tarmac offers a Go SDK that simplifies the usage of waPC. The SDK abstracts away the complexity of using waPC, allowing developers to focus on writing their functions and leveraging Tarmac's features.

![Tarmac Architecture](tarmac-architecture.png)
### Example Application - Architecture Diagram

The below diagram shows the architecture of the [Example Airport Lookup Application](https://github.com/tarmac-project/example-airport-lookup-go/tree/main). This application demonstrates how to build a multi-function service with Tarmac using Go.

```text
+-------------------------------------------------------------------------------------------------------+
| Tarmac Host |
| +------------------------------------------------------------+ |
| | WebAssembly Engine | |
| | | |
| +------------------------+ | +-----------------------------------+ | |
| |On Boot Function Trigger+-----------+-->Init: Creates DB Tables, Calls Load| | |
| +------------------------+ | +--+--------------------------------+ | |
| | | | |
| +--------------------------+ | +--v---------------------------------------------------+ | |
| |Scheduled Function Trigger+---------+--> Load: Calls Fetch, then loads results to SQL Database| | |
| +--------------------------+ | +--+---------------------------------------------------+ | |
| | | | |
| | +--v-----------------------------+ | | +-----------------------------+
| | | Fetch: Download AirportData.CSV+------------------------+--+-->HTTP Server: AirportData.CSV |
| | +--------------------------------+ | | +-----------------------------+
| | | |
+------+ | +--------------------+ | +----------------------------------+ | |
|Client+--+-->HTTP Request Handler+---------------+-->Lookup: Fetches Data from Cache/DB| | |
+------+ | +--------------------+ | +----------------------------------+ | |
| | | |
| +----------------------------+-------------------------------+ |
| | |
| | |
| | |
| +----------------------------v-------------------------------+ |
| | Tarmac Capabilities | |
| | | |
| | +--------+ +------------+ +-------+ +------+ | |
| | |KV Store| |SQL Database| |Metrics| |Logger| | |
| | +--------+ +------------+ +-------+ +------+ | |
| | | |
| +------------------------------------------------------------+ |
| |
+-------------------------------------------------+-----------------------------------------------------+
|
+-------------------------------------------------v-----------------------------------------------------+
| External Services (Not all used in Example Application) |
| |
| +------+ +----------+ +-----+ +-----+ +----------+ +---------+ |
| |Consul| |Prometheus| |Redis| |MySQL| |PostgreSQL| |Cassandra| |
| +------+ +----------+ +-----+ +-----+ +----------+ +---------+ |
| |
+-------------------------------------------------------------------------------------------------------+
```


| Language | waPC Client | Tarmac SDK |
| :--- | :--- | :--- |
Expand Down
Loading