Notifications : construire un standard interopérable (compatible inter-app)
Pourquoi ?
Actuellement, il est difficile de joindre efficacement l’ensemble de la communauté.
Dans de nombreux écosystème, les notifications deviennent vite tellement nombreuses qu’elles sont ignorées. Bien concevoir les notifications nous aidera à éviter/limiter le problème.
Dans la V2, l’offre logicielle sera plus diversifié, si chaque logiciel gère les notificaitons à sa sauce, il sera encore plus dur de joindre l’ensemble de la communauté.
Certains événements sont plus important que d’autres.
La pertinance de certaines notification n’est que temporaire.
Comment ?
Dans la V2 nous avons un système d’indexeur qui sera requêté par tout les clients, ce qui nous ouvre des possibilité technique pour les notifications assez chouette.
On peut probablement combiner ça avec des données issue de data-pod, ou mettre certaines info de notification qui nous semble essentielle en blockchain via les remark.
Mes idées
Distinguer plusieurs types de notifications :
- les notifications simple : le logiciel de consultation emetra une trace automatique pour notifier de la lecture sans besoin d’action dédié par l’utilisateur.
- les notifications AR : quand l’utilisateur affiche la notification, celle-ci n’est pas considéré comme lu tant que l’utilisateur n’en confirme pas explicitement la lecture par une action manuelle de confirmation.
- les notifications primordiale : non seulement il y a AR, mais le système tentera d’alerter l’usager par tout moyen à sa disposition (email, sms, notif aux certificateur…)
Chaque notification a :
- un id unique
- un auteur et un rôle en qualité du quel il emet la notification
- un type suggéré par l’auteur (simple, AR, critique)
- une date de péremption
- un titre
- une date d’émission
- un contenu
- une classe de diffusion (personnel (juste pour moi), comité technique, forgerons, membres, tout les comptes identifiés, probablement d’autres à l’avenir)
Chaque type de notification à également :
- un maximum simultané (exemple : pas plus de 5 notif simple, les anciennes seront automatiquement remplacées)
- un système de droit : qui/quel rôle peut émettre ce type de notification ?
- des tags de qualification pour la catégoriser
- un pattern de tags autorisé à écraser/remplacer avant péremption (incluant l’auteur ou rôle autorisé à écraser)
Les signaux de lecture contiennent :
- un type (logiciel, manuel)
- une date (sauf si en blochain dans ce cas le bloc l’incluant suffit’)
- une évaluation de pertinance si renseignée (problématique/dangeureuse, dérangeante/spam, innutile, utile mais dispensable, nécessaire, primordiale)
- des tags complémentaires (suggéré par l’interface lors de l’évaluation). Exemple : qualification de l’auteur de la notif “dans mon carnet d’adresse”, “dans mon historique de transaction des 30 derniers jours”, “dans mes certifiés”, “dans mes messsage envoyé”, mais aussi, pour les notifications collectives “pour ce type de notif”, “pour les autres destinataires de cette notif spécifique”, ou encore la possibilité de dire “obsolete” si la peremption est réglé trop tard
L’évaluation de pertinance sert à faire évoluer la catégorisation d’une notification vers simple, AR ou primordiale (ou en sens inverse) et ce avec des pondération différente pour l’utilisateur qui évalue, et pour la communauté dans son ensemble. Cela peut aussi servir à définir des règles d’écrasement de notification en cas de surnombre, pour ne garder que les plus pertinante plutôt que les plus récentes.
Idéalement, les notif périmées et/ou lu, restent consultable en archive (avec éventuellement une date de dernière consultation des archives pour distinguer les notif archivée depuis)
Chaque utilisateur peut indiquer ses préférences :
- Catégorisation globale : Une réglette pour indiquer le % de prise en compte issue des réglages manuels de l’utilisateur, le % issue du type suggéré par l’auteur, le % de révaluation selon les évaluation individuelle, le % issue des évaluations collectives
- Activer le déclassement des notif les moins prioritaire d’une classe de priorité si :
- le maximum de notif à été atteint durant les n derniers jours (n = 1, 7, 30, 365, ou désactivé)
- des notifs avec AR ou superieur ont périmé sans être lu au cours des n derniers jours
- des notifs simple ont périmé sans être lu au cours des n derniers jours
chaque type de notif est glissable dans la classe de notif qui nous conviens le mieux :
-
Notif non classés
- tags : transaction reçu
- ecrase automatiquement la précédente : oui/non
- tags : manque de certification dans 30j
- ecrase automatiquement la précédente : oui/non
- tags : manque de certification dans 7j
- …
- tags : compte membre à renouveller d’ici 30j
- tags : compte membre à renouveller d’ici 7j
- tags : status membre obtenu
- tags : echec de validation de la règle de distance concernant votre compte
- tags : echec de validation de la règle de distance concernant le compte d’un de vos certifiés
- tags : rôle forgeron obtenu
- tags : invitation au rôle forgeron
- tags : invitation a devenir membre (indiquez votre identifiant/pseudo)
- tags : certification reçu -5 (alors que vous en avez moins de 5)
- tags : certification reçu +5 (alors que vous en avez davantage que 5)
- tags : certification reçu +5 de quelqu’un de votre carnet d’adresse
- tags : certification reçu +5 de quelqu’un parmis vos proches en attente de certification
- tags : certification reçu +5 de quelqu’un que vous avez déjà certifié, mais pas renouvellé
- tags : vote considéré par la communauté comme utile
- tags : vote considéré par la communauté comme nécessaire
- tags : vote considéré par la communauté comme primordiale
- tags : notif primordiale non-lu depuis 24h par un de vos certifiés
- tags : notif primordiale non-lu depuis 48h par un de vos certifiés
- tags : notif primordiale non-lu depuis 3j par un de vos certifiés
- tags : article vendu
- tags : enchère remportée
- tags : annonce ancienne, à re-confirmer
- tags : nouvel article correspondant à une de vos demande/recherche
- tags : plafond de paiement quotidien atteint
- tags : plafond de paiement hebdomadaire atteint
- tags : compte courant vide (plafond de paiement mensuel atteint
- tags : prêt à certifier (et proches en attente de certification dans votre carnet d’adresse)
- tags : prêt à certifier (et proches en attente de certification dans votre carnet d’adresse)
- tags : message privé reçu
- tags : message privé reçu de quelqu’un à qui vous avez déjà répondu
- tags : message privé reçu de quelqu’un de votre carnet d’adresse
- tags : message privé reçu d’un auteur ayant le rôle “forgerons”
- tags : message privé reçu d’un auteur ayant le rôle “enquete double compte”
- tags : vous êtes taggué sur un site au quel vous vous connecté en SSO via ce compte (résumé SSO)
- tags : quelqu’un à répondu à votre commentaire sur un SSO
- …
- tags : transaction reçu
-
Notif ignorées
- rigidité de la catégorisation : Une réglette pour indiquer le % de prise en compte issue des réglages manuels de l’utilisateur, le % issue du type suggéré par l’auteur, le % de révaluation selon les évaluation individuelle, le % issue des évaluations collectives
-
Notif simple/mineure
- max simultanée
- % de priorité aux plus récente vs % de priorité aux plus utile en cas de surnombre
- rigidité de la catégorisation (pour ce qui est rangé manuellement dans cette catégorie)
-
Notif AR/nécessaire/importante
- max simultanée
- % de priorité aux plus récente vs % de priorité aux plus utile en cas de surnombre
- rigidité de la catégorisation (pour ce qui est rangé manuellement dans cette catégorie)
-
Notif essentielle/primordiale
- max simultanée
- % de priorité aux plus récente vs % de priorité aux plus utile en cas de surnombre
- rigidité de la catégorisation (pour ce qui est rangé manuellement dans cette catégorie)
Pour les notif personnelles, l’algo détermine la classe de notif par un score, et l’utilisateur est notifié dans la classe de priorité de notif la plus proche du score en question (dans sans changement de réglage ou d’évaluation, chaque notif du même type arrive dans la même classe de priorité.
Pour les notifs collectives, en fonction du nombre de personne qui evalu la notif et des évaluation données, le nombre de personne notifié par classe de notification sera ajusté avec une seed correspondant au hash du bloc suivant celui où est émise la notif pour choisir qui est notifié comment de manière déterministe.
Concrètement mes questions
êtes-vous ok sur le principe avec :
- avoir 3 classes/niveaux de notification ? (simple, avec action de l’utilisateur pour confirmer, et avec notification aux certifieurs en cas de non lecture) + la classe/niveau “ignoré” pour permettre aux utilisateurs qui le souhaite d’ignorer certaines notifications.
- confier aux indexeurs la responsabilité de lister les notifications à afficher à chaque compte ?
- envoyer sous forme de remark en blochain les confirmations de lecture de notification ? (confirmation automatique de présentation de la notif à l’usager par le logiciel, et le cas échéant confirmation d’action utilisateur engendré par la notification qu’il s’agisse d’une simle confirmation manuelle de lecture ou d’une action en lien avec la notif)
- associer à chaque notification une date de péremption pour éviter leur désintérêt par surnombre ?
- avoir un maximum de notification simultanées actives, pour la même raison ?
Si ça on est d’accord dessus, c’est déjà pas mal.
Dans un second temps, question ouverte :
- pour pouvoir mettre en place des algo fin et adaptatif de catégorisation des notifications, compatible avec tout les clients, il faudrait un service dédié, façon oracle ou data-pod spécialisé. Ce service devrait avoir accès aux préférences utilisateur en matière de notifications. Ces préférences sont elles des données sensibles à envoyer de manière chiffré à un prestataire mandaté pour leur gestion, qui déterminera seul du sort des notif à destination de cet usagé, au risque d’abus de confiance dans ce prestataire mandaté ? Faut-il les envoyer à plusieurs prestataire mandaté pour réduire le risque d’abus, et laisse l’indexeur fusionner les résultats des prestataire en excluant ceux incohérents ? Ou faut-il considéré ces données comme publique, et permettre à n’importe quel service de les consulter ?
- faut-il laisser toute latitude à l’utilisateur de choisir les notifications qu’il souhaite recevoir, ou y’a-t-il certaines notifications que l’on considère collectivement comme nécessaire à faire parvenir et qui ne soit donc pas désactivable ? (exemple : suspission de double compte, merci de vous rendre disponible pour une vérification d’unicité) Dans le cas ou certaines notifications sont obligatoirement activées, qui et comment décide-t-on d’émettre des notification de ce type ?
- si certaines des notifications changent de niveaux/classe selon des données utilisateurs privées (comme la présence ou non d’un compte dans leur carnet d’adresse) comment fait-on pour que le service de notification ai accès à cette information sans la rendre publique ? → prestataire mandaté je présume, éventuellement plusieurs prestataire pour éviter les abus par recoupement des résultats. Qu’est ce qui vous semble pertinant ?
Voici mon premier jet de réflexion à ce sujet. Vos retours sont très bienvenues !