# ICTC Technological Framework

ICTC consists of Transaction Manager (TM), Task Actuator (TA), and Transaction Compensator (TC).

Transaction Order: A transaction, including one or more transaction tasks, that requires all tasks to be either fully successful or fully rejected. Transaction Task: A task within a transaction, including local tasks of the caller and remote tasks of other parties involved.

<figure><img src="/files/wqLczlFmNmpK77nsNEtW" alt=""><figcaption></figcaption></figure>

### Task Actuator

The Task Actuator uses a "best-effort delivery" policy and will definitely return a result (success/failure).

<figure><img src="/files/eWCHt1L3hfcYJGYnfj2k" alt=""><figcaption></figcaption></figure>

### Transaction Manager

The Transaction Manager is used to manage the status of transactions, operate the Actuator, handle exceptions and call the Compensator. Transaction Manager implementation includes the Saga Transaction Manager (SagaTM) and the 2PC Transaction Manager (TPCTM).

**Saga Transaction Manager**

<figure><img src="/files/WjSdGslHr1k7867kvkfF" alt=""><figcaption></figcaption></figure>

**2PC Transaction Manager**

<figure><img src="/files/ykkIBvHTcYfZUhepMKYb" alt=""><figcaption></figcaption></figure>

### Transaction Compensator

The Transaction Compensator function is implemented in Transaction Manager and is used to execute compensation operations when an exception occurs in a transaction, including automatic compensation, governance or manual compensation.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://iclighthouse.gitbook.io/iclighthouse/products/ictc/ictc-technological-framework.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
