Skip to content

Commit

Permalink
docs: improve readablity
Browse files Browse the repository at this point in the history
  • Loading branch information
siyul-park committed Jul 12, 2024
1 parent 57ddd1d commit 1d60d76
Show file tree
Hide file tree
Showing 11 changed files with 89 additions and 76 deletions.
9 changes: 9 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
The MIT License (MIT)

Copyright (c) 2024 siyual.bak@gmail.com

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ A high-performance, extremely flexible, and easily extensible multipurpose workf

It efficiently handles tasks of varying durations, from short-term to long-term, providing an environment where data processing flows can be declaratively defined and dynamically modified.

Through [built-in extensions](./ext/README.md), it efficiently executes short-term tasks and implements a wide range of features. However, the engine does not enforce the use of specific nodes; all nodes can be freely added or removed according to the service requirements.
With [built-in extensions](./ext/README.md), it efficiently executes short-term tasks and implements a wide range of features. However, the engine does not enforce the use of specific nodes; all nodes can be freely added or removed according to the service requirements.

Integrate the engine into your service to offer personalized experiences and extensively expand functionalities.

## Principles
## Core Values

- **Performance:** Achieves maximum throughput and minimum latency across diverse environments.
- **Flexibility:** Allows dynamic modification of specifications and real-time adjustments.
Expand Down Expand Up @@ -95,9 +95,9 @@ Percentage of the requests served within a certain time (ms)
## Learn More

- [Getting Started](./docs/getting_started.md): Learn how to install the CLI, manage workflows, and run the engine.
- [Key Concepts](./docs/key_concepts.md): Explore key concepts such as nodes, their connections, ports, packets, and more.
- [Architecture](./docs/architecture.md): Understand how node specifications are loaded into the engine and how workflows are executed.
- [User Extension](./docs/user_extension.md): Learn how to add nodes that provide new features and integrate them into existing services in detail.
- [Key Concepts](./docs/key_concepts.md): Understand essential concepts such as nodes, their connections, ports, packets, and more.
- [Architecture](./docs/architecture.md): See how node specifications are loaded into the engine and how workflows are executed.
- [User Extension](./docs/user_extension.md): Find out how to add new nodes and seamlessly integrate them into your existing services.

<!-- Go -->

Expand Down
5 changes: 2 additions & 3 deletions docs/architecture.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Architecture

Node specifications define the roles of each node declaratively, and these specifications are interconnected to form workflows. Each workflow is defined within a specific namespace, with each runtime enviroment executing a single namespace. Namespaces are isolated from each other, meaning nodes in one namespace cannot reference nodes in another namespace.
Node specifications declaratively define the roles of each node, and these specifications are interconnected to form workflows. Each workflow is defined within a specific namespace, with each runtime environment executing a single namespace. Namespaces are isolated from each other, meaning nodes in one namespace cannot reference nodes in another namespace.

```plantext
+-------------------------------------------------+
Expand Down Expand Up @@ -30,7 +30,7 @@ To effectively execute node specifications, the process is divided into two main

## Modifying Workflows

The engine does not expose an API to modify node specifications directly. Instead, it focuses on loading, compiling, and activating nodes for execution.
The engine does not expose an API to modify node specifications directly. Instead, it focuses on loading, compiling, and activating nodes for execution.

To modify node specifications, use the Command-Line Interface (CLI) to update the specifications in the database. Alternatively, you can define a workflow that provides an HTTP API for modifying node specifications. These workflows are typically defined in the `system` namespace.

Expand Down Expand Up @@ -169,7 +169,6 @@ Compiled nodes are converted into symbols and stored in a symbol table, which co
| | Node Specification | |-->| | | Codec | | |--+
| +--------------------+ | | | +-------+ | | |
| | Node Specification | | | +-------------+ | |
| +--------------------+ | +-------------------+ |
+--------------------------+ |
+-------------------------+ |
| Symbol Table | |
Expand Down
3 changes: 1 addition & 2 deletions docs/architecture_kr.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
+-------------------------------------------------+
```

엔진은 특정 노드의 사용을 강요하지 않습니다. 모든 노드는 확장을 통해 엔진에 연결되며, 서비스에 맞게 자유롭게 추가하고 제거할 수 있습니다.
엔진은 특정 노드의 사용을 강요하지 않습니다. 모든 노드는 확장을 통해 엔진에 연결되며, 서비스에 맞게 자유롭게 추가되고 제거될 수 있습니다.

노드 명세를 효과적으로 실행하기 위해 컴파일과 런타임이라는 두 가지 주요 과정을 거칩니다. 이를 통해 복잡성을 줄이고 성능을 최적화할 수 있습니다.

Expand Down Expand Up @@ -169,7 +169,6 @@
| | Node Specification | |-->| | | Codec | | |--+
| +--------------------+ | | | +-------+ | | |
| | Node Specification | | | +-------------+ | |
| +--------------------+ | +-------------------+ |
+--------------------------+ |
+-------------------------+ |
| Symbol Table | |
Expand Down
2 changes: 1 addition & 1 deletion docs/getting_started.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Getting Started

This guide explains how to manage workflows and run the engine using the [Command-Line Interface (CLI)](../cmd/README.md) Follow the steps from installing the CLI to controlling workflows and configuring settings.
This guide explains how to manage workflows and run the engine using the [Command-Line Interface (CLI)](../cmd/README.md). Follow the steps from installing the CLI to controlling workflows and configuring settings.

## Installation from Code

Expand Down
16 changes: 8 additions & 8 deletions docs/getting_started_kr.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# 시작하기

이 가이드는 [Command-Line Interface (CLI)](../cmd/README_kr.md)를 사용하여 워크플로우를 관리하고 엔진을 실행하는 방법을 설명합니다. CLI 설치부터 워크플로우 제어 및 설정 구성까지의 과정을 살펴보세요.
이 가이드는 [Command-Line Interface (CLI)](../cmd/README_kr.md)를 사용하여 워크플로우를 관리하고 엔진을 실행하는 방법을 설명합니다. CLI 설치부터 워크플로우 제어 및 설정 구성까지의 과정을 다룹니다.

## 코드에서 설치

[내장된 확장 기능](../ext/README_kr.md)과 함께 워크플로우를 제어할 수 있는 CLI를 설치합니다. 코드를 빌드하려면 [Go 1.22](https://go.dev/doc/install) 이상이 필요합니다.

먼저, 레포지토리에서 코드를 클론하세요.
먼저, 레포지토리에서 코드를 클론합니다.

```sh
git clone https://github.com/siyul-park/uniflow
Expand Down Expand Up @@ -37,19 +37,19 @@ make build
| `database.name` | `DATABASE.NAME` | - |
| `collection.nodes` | `COLLECTION.NODES` | `nodes` |

[MongoDB](https://www.mongodb.com/)를 사용할 경우 엔진이 노드 명세의 변경을 추적할 수 있도록 [변경 스트림](https://www.mongodb.com/docs/manual/changeStreams/)이 활성화되어 있어야 합니다. 변경 스트림을 이용하기 위해 [복제본 세트](https://www.mongodb.com/ko-kr/docs/manual/replication/#std-label-replication)활용하세요.
[MongoDB](https://www.mongodb.com/)를 사용할 경우, 엔진이 노드 명세의 변경을 추적할 수 있도록 [변경 스트림](https://www.mongodb.com/docs/manual/changeStreams/)이 활성화되어 있어야 합니다. 이를 위해 [복제본 세트](https://www.mongodb.com/ko-kr/docs/manual/replication/#std-label-replication)설정하세요.

## 명령어

CLI는 워크플로우를 제어하기 위해 여러 가지 명령어를 제공합니다. 전체 명령어 목록을 확인하려면 다음 도움말 명령어를 참조하세요:
CLI는 워크플로우를 제어하기 위해 다양한 명령어를 제공합니다. 전체 명령어 목록을 확인하려면 다음 도움말 명령어를 사용하세요:

```sh
./dist/uniflow --help
```

### Apply

`apply` 명령어는 노드 명세들을 특정 네임스페이스에 적용합니다. 노드 명세가 이미 네임스페이스에 존재한다면 기존 명세를 업데이트하고, 존재하지 않으면 새로 생성합니다. 명세가 적용된 결과를 출력합니다. 네임스페이스를 명시하지 않으면 기본적으로 `default` 네임스페이스에 적용됩니다.
`apply` 명령어는 노드 명세를 특정 네임스페이스에 적용합니다. 노드 명세가 이미 존재하면 업데이트하고, 그렇지 않으면 새로 생성합니다. 결과를 출력하며, 네임스페이스를 명시하지 않으면 기본적으로 `default` 네임스페이스에 적용됩니다.

```sh
./dist/uniflow apply --filename examples/ping.yaml
Expand All @@ -61,7 +61,7 @@ CLI는 워크플로우를 제어하기 위해 여러 가지 명령어를 제공
### Delete
`delete` 명령어는 네임스페이스에 존재하는 노드 명세들을 제거합니다. 이는 특정 워크플로우의 노드를 삭제할 때 유용합니다. 네임스페이스를 명시하지 않으면 `default` 네임스페이스에서 삭제됩니다.
`delete` 명령어는 네임스페이스에 존재하는 노드 명세를 제거합니다. 이는 특정 워크플로우의 노드를 삭제할 때 유용합니다. 네임스페이스를 명시하지 않으면 `default` 네임스페이스에서 삭제됩니다.
```sh
./dist/uniflow delete --filename examples/ping.yaml
Expand All @@ -71,7 +71,7 @@ CLI는 워크플로우를 제어하기 위해 여러 가지 명령어를 제공
### Get
`get` 명령어는 네임스페이스에 존재하는 노드 명세들을 조회합니다. 네임스페이스를 명시하지 않으면 `default` 네임스페이스를 조회합니다.
`get` 명령어는 네임스페이스에 존재하는 노드 명세를 조회합니다. 네임스페이스를 명시하지 않으면 `default` 네임스페이스를 조회합니다.
```sh
./dist/uniflow get
Expand Down Expand Up @@ -104,4 +104,4 @@ kind: syscall
opcode: nodes.create # nodes.read, nodes.update, nodes.delete
```
[워크플로우 예시](../examples/system.yaml)를 확인하여 시작해보세요. 필요에 따라 인증과 인가 과정을 이 워크플로우에 포함할 수 있습니다. 일반적으로 이러한 런타임 제어와 관련된 워크플로우는 `system` 네임스페이스에 정의됩니다.
[워크플로우 예시](../examples/system.yaml)를 확인하여 시작해보세요. 필요에 따라 인증과 인가 과정을 이 워크플로우에 포함할 수 있습니다. 일반적으로 이러한 런타임 제어와 관련된 워크플로우는 `system` 네임스페이스에 정의됩니다.
Loading

0 comments on commit 1d60d76

Please sign in to comment.