> For the complete documentation index, see [llms.txt](https://prosbcdocs.telcobridges.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://prosbcdocs.telcobridges.com/telecom-references/protocols/general-guidelines-for-designing-a-high-performance-system.md).

# General guidelines for designing a high-performance system

High traffic (high number of circuits) and performance systems (low call processing response time) usually require multiple Tmedia devices and multiple host machines. These systems are almost always required to be scalable (down or up) to be adaptable to multiple different customer applications (i.e. a switch platform). Thus, such systems must have a very clean (read ‘simple’) architecture to be easily maintainable and accommodate new feature sets.

![Multi-host high-performance system](https://docs.telcobridges.com/w/images/6/68/Multi-host_high_performance_system.jpg)

1. It is easier to architect such a system when every individual host machine can control a set of resources independently of the other host machine. For example (refer to the figure above), in a system where ten [TB640](https://telcobridges.com/products/development-platforms-tdev/) blades would be required (i.e. more than 300,000 circuits with a capacity of more than 8000 calls per second), a machine could process the call control of five TB640 blades and their associated circuits. This approach usually also makes the system easily scalable by adding more ‘nodes’ of TB640 / host machines without having to change the architecture.
2. Other functions of the system (e.g. routing, configuration, etc) should also be divided in functional modules and allow interaction with other modules through asynchronous APIs (i.e. message based APIs between modules). This will force all modules to deal with asynchronous events and thus parallelize work (as mentioned before).
3. Once each interface is made asynchronous, functional modules may be dispersed amongst different machines to increase the overall throughput of the system by using the CPU (and memory) resources of multiple machines.
4. All previously mentioned guidelines must be respected (i.e. no synchronous operations) in every modules to avoid creating a bottleneck because of a slow module in the data flow. In case of extensive operation required by a single module, consider either re-dividing (parallelizing) the functions of that module or isolating the module onto a very powerful machine dedicated to that functional task.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://prosbcdocs.telcobridges.com/telecom-references/protocols/general-guidelines-for-designing-a-high-performance-system.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
