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/15 21:50] – 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 that belong | + | |
| - | * RealmID - hash of Realm public key | + | |
| - | * Epoch - positivie number representing version of the object | + | * Object |
| - | * Shard - contains | + | * mandatory fields: name, kind |
| - | * mandatory fields: name, kind, epoch | + | |
| * 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 might 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. | ||
| + | * version - used by reflectors and Router to facilitate subscriptions | ||
| + | * Shard - contains specific version of ObjectID kind with unique address ~ShardID | ||
| * Handler - Code shard that knows to execute methods for certain Object kind | * Handler - Code shard that knows to execute methods for certain Object kind | ||
| * Handlers Set - Handlers published by the same Realm | * Handlers Set - Handlers published by the same Realm | ||
| - | * Reflector - Object sole purpose is to subscribe to a listener method of referenced PRIVATE | + | * Reflector - Object sole purpose is to subscribe to a listener method of referenced PRIVATE |
| * Publish - procedure to create Reflector | * Publish - procedure to create Reflector | ||
| - | * Subscription - Object that specifies rules to invoke methods of other Objects. | + | * Subscription - Object |
| - | * to Reflector: specifies | + | * Subscription |
| - | * to Objects: specifies | + | * Subscription |
| * Router - Caching/ | * Router - Caching/ | ||
| - | * Router - keep track of objects its children | + | * 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 |
| * authenticate the site user (a site normally has one user, preferably with unique domain) | * authenticate the site user (a site normally has one user, preferably with unique domain) | ||
| Line 51: | Line 54: | ||
| ==== Published Shards ==== | ==== Published Shards ==== | ||
| - | Normal shards are accessible to Realm owner only. The owner might choose to publish methods of some objects using special " | + | Normal shards are accessible to Realm owner only. The owner might choose to publish methods of some objects using special " |
| - | ===== 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 80: | 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.1739656216.txt.gz · Last modified: 2025/02/15 21:50 by arie
