> For the complete documentation index, see [llms.txt](https://docs.rierino.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rierino.com/devops/microservices/building-blocks.md).

# Building Blocks

Overview of the runner element types used to define systems, streams, data access, handlers, actions, and runtime behavior.

![Element UI](https://1659095931-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcnDk3J1AzTgg2NFrGPlh%2Fuploads%2F5za5LatJF6rpMtgJQt9b%2FUI_Element.png?alt=media\&token=267548d0-171d-4f1f-9b55-05b085140097)

Elements describe the functionality, system and database configurations required to build services responding to different types of requests across the platform.

Through combinations of these elements, it is possible to create any microservice without writing single line of code.

There are 10 types of elements, which can be defined using the Rierino admin user interface:

**1.** [**Global Setting**](/devops/microservices/building-blocks/additional-elements/global-settings.md)**:** Used for describing global settings, which are typically specific to a runner, such as Samza serialization settings (typical settings are already available in standard installations)

**2.** [**Generic Setting**](/devops/microservices/building-blocks/additional-elements/generic-settings.md)**:** Used for describing settings for a specific prefix, such as "master" system configurations (optional way of configuring systems)

**3.** [**System**](/devops/microservices/building-blocks/systems-integrations.md)**:** Used for settings which are applicable to all components of a system, such as the URI for a database connection or URL & authentication details for a 3rd party REST system

**4.** [**Stream**](/devops/microservices/building-blocks/data-and-event-streams.md)**:** Used for describing settings for a data stream, such as a Kafka topic or REST path&#x20;

**5.** [**State Manager**](/devops/microservices/building-blocks/data-sources.md)**:** Used for describing settings for a data store, such as a MongoDB collection or SQL table&#x20;

**6.** [**Listener**](/devops/microservices/building-blocks/additional-elements/listeners.md)**:** Used for describing settings of a state listener, which responds to updates on a data store (optional, as CDC mechanism provides more flexible capabilities)

**7.** [**Query Manager**](/devops/microservices/building-blocks/query-and-search-sources.md)**:** Used for describing settings for a querying a system, such as Elasticsearch or MongoDB&#x20;

**8.** [**Handler**](/devops/microservices/building-blocks/execution-handlers.md)**:** Used for describing a code or package, which is capable of performing procedures and returning results for requests received&#x20;

**9.** [**Action**](/devops/microservices/building-blocks/additional-elements/actions.md)**:** Used for describing preconfigured function calls on specific handlers with predefined parameter values&#x20;

**10.** [**Role**](/devops/microservices/building-blocks/additional-elements/roles.md)**:** Used for describing types of roles some data received from a stream can assume

## Element UI

Opening the **Element** screen from **Devops** app menu or navigation bar, you will come across an editor, allowing definition of elements.

### **Definition**

Definition tab is used for defining basic properties of elements, such as name, description and id.

### **Settings**

Settings page is used to populate element type specific properties of each element. Applicable settings for each element type are listed on related element page.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rierino.com/devops/microservices/building-blocks.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
