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:45] – [Terminology] arie | f1x:architecture [2025/03/02 05:22] (current) – [Terminology] arie | ||
|---|---|---|---|
| Line 7: | Line 7: | ||
| * Site - F1x node installation | * Site - F1x node installation | ||
| * Identity - public/ | * Identity - public/ | ||
| - | * Realm - set of objects | + | |
| - | * Shard - Code (Handler) | + | |
| - | * has fields: name and kind | + | * Object |
| + | * mandatory | ||
| * Data shards have _handler | * Data shards have _handler | ||
| * Code shards have _code attribute | * Code shards have _code attribute | ||
| - | * Handler PubSub has method listener_SOMENAME and callback_SOMENAME. The callback method of Handler is called if result of the corresponding listener method changed. Internal logic migh intentionally call listener method to invoke subscribed callbacks. | + | * Handler PubSub has method listener_SOMENAME and callback_SOMENAME. The callback method of Handler is called if result of the corresponding listener method changed. Internal logic might intentionally call listener method to invoke subscribed callbacks. |
| - | * 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 | ||
| - | * Router - Caching/ | + | |
| - | * Router - keep track of objects its children | + | * Subscription to Reflector: specifies ObjectID→method to call on each new version of specific ReflectorID |
| + | * Subscription to Objects: specifies ObjectID→method to call on each new Object of kind " | ||
| + | | ||
| + | * 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 42: | Line 47: | ||
| * garbage collect " | * garbage collect " | ||
| + | === Data Shard === | ||
| - | === Shard (Memo) === | + | Data Shard is on-disk representation of object with fields that has associated data handler |
| + | Code Shard methods is written in [[https:// | ||
| - | Shard is data structure that has associated data handler, similarily to data and code separation in [[https:// | + | ==== Published Shards ==== |
| - | ==== Exported Folders ==== | + | Normal shards are accessible to Realm owner only. The owner might choose to publish methods of some objects using special " |
| - | Memos are stored into Folders in " | + | ===== Router ===== |
| - | ===== pCache | + | Every Site is connected to one Router |
| - | Every Site is connected to a pCache server. It might be discovered by asking centralized " | + | |
| - | + | * retrieve " | |
| - | | + | * receive notifications from children sites about new Shards, forward |
| - | * retrieve " | + | |
| - | * receive notifications from children sites about data change, 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 78: | 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.1739090708.txt.gz · Last modified: 2025/02/09 08:45 by arie
