# Use Cases

{% hint style="info" icon="magnifying-glass" %}
**In brief:** Rierino is a backend heavy development platform for many modules and systems. It is most useful when you need one or more of these traits:

* **Large scale operations.** Handle millions of requests with millisecond latency.
* **Dynamic business environment.** Ship frequent changes without heavy rewrites.
* **Automation needs.** Execute critical decisions and processes at high volume.
* **Data-heavy domains.** Turn data into real-time actions and insights.
* **Modernization.** Reduce monolith debt with incremental migration to services.
* **Many integrations.** Connect internal and external systems without fragile glue.
  {% endhint %}

Rierino keeps teams focused on domain logic. It provides consistent building blocks for services and orchestration. It reduces the operational cost of scaling and integrating.

Typical applications that can be built using Rierino include:

## Information Management

Rierino's flexible data and UI model fits information management well. It works for [PIM](https://rierino.com/solutions/pim), [CMS](https://rierino.com/solutions/cms) and MDM.

These use cases usually center on data entry, enrichment, and publishing. They also need strong validation and fast retrieval at scale.

### Common scenarios

* Manage large catalogs with frequent edits and approvals.
* Enrich records using internal rules and external signals.
* Publish structured content to multiple channels and systems.

### Typical elements to start with

Start with a clean CRUD backbone and an admin UX:

* [Apps](https://docs.rierino.com/design/user-interface/apps) & [UIs](https://docs.rierino.com/design/user-interface/uis) for admin screens. Use them for listing and editing records.
* [State Managers](https://docs.rierino.com/devops/microservices/elements/state-managers), especially [MongoDB Collection](https://docs.rierino.com/devops/microservices/elements/state-managers/shared-states/mongodb-collection), for persistence. Use it as the operational store.
* [Runners](https://docs.rierino.com/devops/microservices/runners), especially [CRUD Event Runner](https://docs.rierino.com/devops/microservices/runners/deploying-runners/spring-runners#crudeventrunner), for REST APIs. Keep reads and writes consistent.
* [API Flows](https://docs.rierino.com/devops/api-flows) and [Queries](https://docs.rierino.com/configuration/queries) for orchestration. Use them for enrichment and advanced reads.

### More advanced elements (frequently used)

These show up when you need derived views and performance layers:

* [Loading Strategies](https://docs.rierino.com/devops/microservices/elements/state-managers/loading-strategies) & [CDC Systems](https://docs.rierino.com/devops/microservices/elements/systems#cdc) for CQRS patterns. Use them for cache and read models.
* [Generate Text/Html](https://docs.rierino.com/introduction/broken-reference) handler for server-side rendering. Use it for templates and rich outputs.

## Decision Automation

Rierino includes a flexible business rule engine and ML capabilities. It fits decision automation use cases like recommendations, risk scoring, and pricing.

These use cases combine deterministic rules and ML scoring. They also benefit from tight visibility into outcomes.

### Common scenarios

* Real-time eligibility and policy decisions.
* Next-best-action recommendations at request time.
* Continuous scoring from event streams.

### Typical elements to focus on

* [Apply Business Rules](https://docs.rierino.com/introduction/broken-reference) handler and [Business Rules](https://docs.rierino.com/configuration/business-rules) configuration. Use them for rule-based decisions.
* [Score ML Models](https://docs.rierino.com/introduction/broken-reference) handler and [ML Models](https://docs.rierino.com/data-science/ml-models) configuration. Use them for AI-based decisions.
* [Data Visualizations](https://docs.rierino.com/data-science/data-visualizations) for insights. Use them for explainability and scenario checks.

### More advanced elements (frequently used)

These help when decisions are event-driven and time-sensitive:

* [Kafka Topic](https://docs.rierino.com/devops/microservices/elements/streams/kafka-topic) and [Samza Runners](https://docs.rierino.com/devops/microservices/runners/deploying-runners/samza-runners) for real-time streams. Use them for async decisions.
* [Calculate Real-time Metrics](https://docs.rierino.com/introduction/broken-reference) handler and [Complex Event Processing](https://docs.rierino.com/data-science/complex-event-processing) configuration. Use them for windows and joins.
* [Run Python Procedure](https://docs.rierino.com/introduction/broken-reference) handler for custom analytics. Use it for bespoke feature logic.

## Business Process Management

Rierino includes flexible authentication and task management. It fits [BPM](https://rierino.com/solutions/bpm) applications like HR, intranets, and ERP modules.

These use cases need secure access and traceable task execution. They often require human-in-the-loop steps.

### Common scenarios

* Approvals with audit trails and escalation.
* Case management with user tasks and SLAs.
* Data capture workflows with strict validation.

### Typical elements to focus on

* [Authenticate](https://docs.rierino.com/introduction/broken-reference) handlers and [Gateway Servers](https://docs.rierino.com/devops/gateway-and-security/gateway-servers) for identity. Use them for role-based access.
* [Orchestrate User Task](https://docs.rierino.com/introduction/broken-reference) handler and [Dynamic Editor](https://docs.rierino.com/design/user-interface/uis/widgets/object-widgets#dynamic-editor) for work. Use them for task screens.
* [Condition](https://docs.rierino.com/devops/api-flows/configuring-saga-steps/condition-step) & [Transform](https://docs.rierino.com/devops/api-flows/configuring-saga-steps/transform-step) steps for control flow. Use them for branching decisions.

### More advanced elements (frequently used)

These are common once processes include files and strict validation:

* [File Systems](https://docs.rierino.com/devops/microservices/elements/systems#hdfs) and [Media Editors](https://docs.rierino.com/design/user-interface/uis/widgets/value-widgets#media-editor) for uploading, editing and displaying process documents and media.
* [Validate Event](https://docs.rierino.com/introduction/broken-reference) handler and [Data Schema](https://docs.rierino.com/design/data-schema) for validation of user inputs against content structure.
* [Run Scripts](https://docs.rierino.com/introduction/broken-reference) handler for implementing customized logic. Use it for edge cases.

## Integration & Orchestration

Rierino includes a microservices orchestration layer. It can incorporate external services and APIs into business flows. It can act as middleware for open APIs and enterprise integrations.

These use cases focus on connecting services reliably. They need transformations, batching, and controlled execution.

### Common scenarios

* Sync master data across systems with consistent mappings.
* Orchestrate multi-step API calls with retries and fan-out.
* Integrate file-based processes into service workflows.

### Typical elements to focus on

* [Call Rest API](https://docs.rierino.com/introduction/broken-reference) and [Call SOAP API](https://docs.rierino.com/introduction/broken-reference) handlers for third-party calls. Use them for integrations.
* [Odata Service](https://docs.rierino.com/devops/microservices/elements/state-managers/specialized-states/odata-service) & [Odata Queries](https://docs.rierino.com/configuration/queries/query-platforms/odata-queries) for OData sources. Use them for data-backed integration.
* [API Flows](https://docs.rierino.com/devops/api-flows) & [Orchestrate Saga](https://docs.rierino.com/introduction/broken-reference) handler for orchestration. Use them for multi-step flows.
* Handlers such as [Buffer Payloads](https://docs.rierino.com/introduction/broken-reference), [Loop Each Entry](https://docs.rierino.com/introduction/broken-reference) for control. Use them for batching and fan-out.

### More advanced elements (frequently used)

These help when integrations require extra dependencies or file orchestration:

* [Deployments](https://docs.rierino.com/devops/microservices/deployments) for incorporating custom client libraries for integration.
* [Integrate with Camel](https://docs.rierino.com/introduction/broken-reference) for integrations with less conventional services.
* [Perform File Operation](https://docs.rierino.com/introduction/broken-reference) for orchestrating files across different systems.
