Tutti gli oggetti di tutti i microservizi dovranno avere un set minimo di campi base, di seguito descritto, dove non diversamente descritto non sono manipolabili da nessun client:
uuid: campo di tipo uuid, con modello equivalente al modello stesso (es: “7020f592-20f5-48dd-9295-481b3ffb3c87” )
model: campo di tipo testo, descrive il modello stesso (es: “product”)
code: campo di tipo text, consente di accedere all'oggetto in maniera programmatica e descrittiva (es: “magnumbottle” ), può essere modificato client-size, deve essere univoco per modello
memo: campo di tipo text, consente di avere una descrizione testuale mnemonica dell'oggetto stesso (es: “Tenuta San Guido Sassicaia 2016”)
Nota bene: a fini di convenienza, lo stesso viene materializzato in modo da poter essere utilizzato agevolmente, ciò nonostante la sua natura mal si presta a installazioni multilingua, all'interno delle quali lo stesso dovrà necessariamente essere rigenerato da un hook in tempo reale, in modo da sincronizzarlo con la lingua corrente del client. Sarà altresì compito di un event-handler popolarlo.
parent_uuid: campo di tipo uuid, rappresenta l'oggetto “detentore” del presente, l'oggetto corrente, perderebbe di significato nella base dati se il detentore fosse cancellato, può essere modificato client-side
parent_model: campo di tipo testo, descrive il modello dell'oggetto detentore, può essere modificato client-side
parent_origin: campo di tipo testo, descrive il microservizio dell'oggetto detentore, può essere modificato client-side
created: campo datetime, descrive l'istante di generazione dell'oggetto
createdby: campo uuid, descrive l'attore di generazione dell'oggetto
committed: campo datetime, descrive l'istante di validazione dell'oggetto
commitedby: campo uuid, descrive l'attore di validazione dell'oggetto
modified: campo datetime, descrive l'istante di ultima modifica dell'oggetto
modifiedby: campo uuid, descrive l'attore di ultima modifica dell'oggetto
deleted: campo datetime, descrive l'istante di cancellazione logica dell'oggetto
deletedby: campo uuid, descrive l'attore di cancellazione logica dell'oggetto
ownedby: campo uuid, descrive l'attore proprietario dell'oggetto, può essere modificato client-side
Gli stessi saranno estendibili in futuro con altri campi tipo l'origin (utile per la condivisione dei repository tra microservizi), l'uuid name (per mantenere il seme di generazione di un uuidv5) ed altri.