building blocks concept (#112)

* building blocks

* Update building_blocks.md

Changed `programmers` to `developers`
This commit is contained in:
Haishi2016 2019-10-13 22:46:47 -07:00 committed by Yaron Schneider
parent 458583aabb
commit 66702b07a5
2 changed files with 19 additions and 0 deletions

View File

@ -8,6 +8,10 @@ This directory contains various Dapr concepts. The goal of these documents is to
A binding provides defines a bi-directional connection to an external cloud/on-premise service or system. Dapr allows you to invoke the external service through the standard Dapr binding API, and it allows your application to be triggered by events snet by the connected service.
* [**Building blocks**](./architecture/building_blocks.md)
A building block is a single-purposed API surface backed by one or more Dapr components. Dapr consists of a set of building blocks, with extensibility to add new building blocks.
* **Components**
Dapr uses a modular design, in which functionalities are grouped and delivered by a number of *components*, such as [pub-sub](./components/redis.md) and [secrets](./components/secrets.md). Many of the components are pluggable so that you can swap out the default implemenation with your custom implementations.

View File

@ -0,0 +1,15 @@
# Building blocks
Dapr consists of a set of building blocks that can be called from any programming language through Dapr HTTP or gRPC APIs. These building blocks address common challenges in building resilient, microservices applications. And they catpure and share best practices and patterns that empower distributed application developers.
![Dapr building blocks](../../images/overview.png)
## Anatomy of a building block
Both Dapr spec and Dapr runtime are designed to be extensible
to include new building blocks. A building block is comprised of the following artifacts:
* Dapr spec API definition. A newly proposed building block shall has its API design incorporated into the Dapr spec.
* Components. A building block may reuse existing [Dapr components](../README#components), or introduce new components.
* Test suites. A new building block implementation should come with associated unit tests and end-to-end scenario tests.
* Documents and samples.