f1x:architecture
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| f1x:architecture [2025/02/09 08:25] – [Site] arie | f1x:architecture [2025/03/02 05:22] (current) – [Terminology] arie | ||
|---|---|---|---|
| Line 5: | Line 5: | ||
| ==== Terminology ==== | ==== Terminology ==== | ||
| - | * Shard - Object with _name field | + | * Site - F1x node installation |
| + | * Identity - public/ | ||
| + | * RealmID - hash of Identity public key | ||
| + | * Realm - set of objects that are related to an Identity. All shards in realm have the same realm ID. \\ Likely to be implemented as git repository, for its strong builtin sync and reconciliation feautures. | ||
| + | * Object - contains fields of Object | ||
| + | * mandatory fields: name, kind | ||
| * Data shards have _handler | * Data shards have _handler | ||
| * Code shards have _code attribute | * Code shards have _code attribute | ||
| - | * PubSub | + | * Handler |
| - | * Handler - Code shard that knows to execute methods for given Object. | + | * version - used by reflectors and Router to facilitate subscriptions |
| - | * Handlers Set - Handlers published by the same Owner | + | * Shard - contains specific version of ObjectID kind with unique address ~ShardID |
| - | * Reflector - Mechanism | + | * Handler - Code shard that knows to execute methods for certain |
| + | * Handlers Set - Handlers published by the same Realm | ||
| + | * Reflector - Object sole purpose is to subscribe to a listener method of referenced | ||
| * Publish - procedure to create Reflector | * Publish - procedure to create Reflector | ||
| - | * Site - f1x node installation | + | * Subscription |
| - | * Router - Caching/ | + | * Subscription to Reflector: specifies ObjectID→method to call on each new version of specific ReflectorID |
| - | * Router - keep track of objects its children | + | * Subscription to Objects: specifies ObjectID→method to call on each new Object of kind " |
| + | * Router - Caching/ | ||
| + | * Router - keep track of objects its children | ||
| * Cacher - cache frequently accessed objects | * Cacher - cache frequently accessed objects | ||
| * Matcher - [[: | * Matcher - [[: | ||
| + | * Geo - Plus Code of [[https:// | ||
| + | |||
| ==== Site ==== | ==== Site ==== | ||
| - | Site is compute infrastructure that enables users to operate | + | Site is compute infrastructure that enables users to operate |
| - | \\ | + | |
| - | Web server (presentation) functionality: | + | |
| - | * authenticate the single | + | * authenticate the site user (a site normally has one user, preferably with unique domain) |
| * communcate with core on objects CRUD | * communcate with core on objects CRUD | ||
| * visualise and manage content in user-friendly way | * visualise and manage content in user-friendly way | ||
| Line 38: | Line 47: | ||
| * garbage collect " | * garbage collect " | ||
| + | === Data Shard === | ||
| - | === Shard (Memo) === | + | Data Shard is on-disk representation of object with fields |
| - | + | Code Shard methods | |
| - | Shard is data structure | + | |
| - | ==== Exported Folders | + | ==== Published Shards |
| - | Memos are stored into Folders in " | + | Normal shards |
| - | ===== pCache server | + | ===== Router |
| - | Every Site is connected to a pCache | + | Every Site is connected to one Router |
| - | * retrieve list of subscriptions from sites under its control, send back matching | + | * retrieve list of subscriptions from realms |
| - | * retrieve " | + | * retrieve " |
| - | * receive notifications from children sites about data change, forward | + | * receive notifications from children sites about new Shards, forward |
| ==== Publish/ | ==== Publish/ | ||
| - | Frequently object want to know when something changes in other specific | + | Frequently object want to know when something changes in other objects. To maintain encapsulation principle, this is done by " |
| The subscribers might then recalculate a value, compare with threshold and raise nofification to user or alter return value of their own listeners, thus " | The subscribers might then recalculate a value, compare with threshold and raise nofification to user or alter return value of their own listeners, thus " | ||
| Line 74: | Line 83: | ||
| * what is default measurement system of the owner? Imperial or standard | * what is default measurement system of the owner? Imperial or standard | ||
| - | * get list of neighbours who know me: | + | * WHA? get list of neighbours who know me: |
| - | * find Memos of kind People and have homeAt geo and have Memo of kind Subscription where (site=me and kind Memo=Message) | + | * WHA? find Objects |
| - | * remove ones that have distance between me and homeAt more than 100 m | + | * WHA? remove ones that have distance between me and homeAt more than 100 m |
| Stored queries (subscriptions) also use jq to find matching Memos: TBD How? | Stored queries (subscriptions) also use jq to find matching Memos: TBD How? | ||
f1x/architecture.1739089534.txt.gz · Last modified: 2025/02/09 08:25 by arie
