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/16 01:11] – arie | f1x:architecture [2025/03/02 05:22] (current) – [Terminology] arie | ||
|---|---|---|---|
| Line 8: | Line 8: | ||
| * Identity - public/ | * Identity - public/ | ||
| * RealmID - hash of Identity public key | * 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. | + | * 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. |
| - | * Shard - contains | + | * Object |
| * mandatory fields: name, kind | * mandatory fields: name, kind | ||
| * 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. | ||
| - | | + | |
| + | * 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.1739668290.txt.gz · Last modified: 2025/02/16 01:11 by arie
