@@ -7,16 +7,22 @@ A RIDDL repository is an abstraction for anything that can retain
77information (e.g. [ messages] ( message.md ) ) for retrieval at a
88later time. This might be a relational database, NoSQL database, a data lake,
99an API, or something not yet invented. There is no specific technology implied
10- other than the retention and retrieval of information. You should think of
11- repositories more like a message-oriented version of the
12- [ Java Repository Pattern] ( https://java-design-patterns.com/patterns/repository/#explanation )
13- than any particular kind of database.
10+ other than the retention and retrieval of information. Thinking of repositories
11+ only as a database is missing the mark.
1412
1513## Schemas
16- Repositories have traditionally had data schemas as part of their design
17- definition; but RIDDL regards schemas as a technical detail of the
18- implementation and leaves them unspecified. Repositories are only defined in
19- terms of their message handling.
14+ As part of their intrinsic definition, repositories have schemas. Schemas in
15+ implementation and leaves them unspecified. Repository schemas in RIDDL have
16+ little relationship to SQL because they are not relational databases and indeed
17+ must support the schema for any kind of data storage. The schema is specified
18+ more like a graph database. A set of types defines what can be placed in
19+ the database, an optional set of links defines how the fields of those types
20+ are related, and a set of indices defines which fields the database indexes.
21+
22+ A repository may define multiple schemas, each with its own _ kind_ . The kind of
23+ schema may be: flat, relational, time-series, graphical, hierarchical, star,
24+ document, columnar, vector, or other. These are only suggestive of the kind of
25+ storage layout the repository uses.
2026
2127## Handling Messages
2228A repository has a [ handler] ( handler.md ) that processes
0 commit comments