# Distributed application

An application whose parts communicate across process or network boundaries, rather than running as a single unit.

Also known as: distributed app

A distributed application can include a frontend, several APIs, databases, caches, and message queues. Its parts have independent lifecycles and can fail or become available at different times.

Aspire helps you describe, run, observe, and prepare these parts for deployment as one application. It does not remove the need to handle network failures, retries, authentication, or data consistency in your services.

## Practical example

A storefront calls a product API, which reads a database and writes messages to a queue. Aspire models these parts together.

## Learn more

- [Learn how Aspire fits your application](https://aspire.dev/get-started/what-is-aspire/)

## Related terms

- [AppHost](https://aspire.dev/hub/glossary/apphost/)

- [Resource](https://aspire.dev/hub/glossary/resource/)

- [Service discovery](https://aspire.dev/hub/glossary/service-discovery/)