Root / Assembly / ARCCore / AREnumType / DocumentationOnlyEnum / ARConcepts / _Member / GettingStarted
|Description||AgoRapide 2020 is an open source library for building data-oriented backend applications using .NET Standard 2.1.|
The source code, including this documentation, is found at
AgoRapide 2020 can be used as:
1) A distributed in-memory backend processor of events / listener to events.
The PropertyStream-format lends itself well to distribution of loads. Each processing node subscribes to sub-sets of the entire property stream.
The Subscriptions consists of the events to which the node has to respond, plus other necessary data in order to correctly process the events.
The result is placed back out in the property stream, either back upstream, or further downstream for other nodes to process.
2) A 'single-endpoint' API.
All data is exposed through a standardized API query mechanism (REST or GraphQL) with no need for writing application specific endpoints.
Since APIs should expose well defined DTO's and not entire entities, AgoRapide APIs are therefore normally established as separate nodes.
Each node has a well defined Subscription to a sub-set of your entire database (also reducing the memory footprint).
The API will then in effect offer DTO's with very little coding needed.
3) A reporting tool / query tool ("Express BI").
An API as in 2) combined with the query library.
The query library enables report generation directly from the web-browser (as a single bookmark-able URL).
For all cases above the following also applies:
A) An in-memory database which is continously updated through the property stream is provided by AgoRapide.
This ensures short response times and significantly reduces network traffic.
B) The core database storage is either provided directly by AgoRapide, or you can use an established 'key-value' databases like DynamoDB or Cosmos DB.
C) High performance thread-safe "simultaneous" read and writes is supported in all scenarios.
D) AgoRapide works better the more strongly typed schema you specify (see TaggingOfPropertyKeys).
You can however start out without any schema at all. Duck typing is then used instead.
Even relational queries are possible straight out-of-the-box without any schema, as long as some naming conventions are followed
(like Order.CustomerId for instance, in order to relate an Order to a Customer)
Strong typing is used by AgoRapide whenever specified by the schema.
E) Scaling is supported by flexible routing of the PropertyStream to multiple nodes.
F) No dependencies to other libraries apart from .NET itself.
See ARCDoc for practical examples for using AgoRapide.
AgoRapide is the result of a strong wish of AvoidingRepetition.
Three very important concepts in AgoRapide are:
1) PropertyStream: The concept of how all data is broken down into single 'key and value' pairs which are then stored as plain text format lines and then never changed.
2) TaggingOfPropertyKeys: The concept of specifying in a single place all relevant information about a given property (data field).
3) PropertyAccess: The general mechanism for accessing properties of objects in AgoRapide.
AgoRapide is split into different ARComponents. You can have a functional distributed storage mechanism including log-consoles by linking only to ARCCore.
Choose from the other components based on your security needs (ARCSec), the complexity of your data (ARCQuery) or other needs (see ARComponents in general).
See also ARConcepts and AgoRapideHistory.
Generated 2020-10-13 11:11:01.109 UTC