aboutsummaryrefslogtreecommitdiffstats
path: root/include/NamespaceReferenceManager.h
blob: d5c38972eb773eb9e1e8f11b44a93cc9429a8bdd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#pragma once

#include "Api.h"

namespace nt
{
    /**
     * @class NamespaceReferenceManager
     *
     * @brief Handles the logical mapping and isolation of human-readable references.
     *
     * DESIGN NOTES:
     * 1. Namespace Isolation:
     *    Allows for private branch shadowing (e.g., /user_a/refs/branch/abc).
     *    To maintain lookup clarity, protocol-level syntax must explicitly define
     *    the scope to prevent non-deterministic shadowing during resolution.
     *
     * 2. Multi-Ref Atomic Updates:
     *    Ensures that updates to multiple references (e.g., pushing to 'master'
     *    and 'audit_log' simultaneously) are all-or-nothing. If any single
     *    contention check fails, the entire batch is aborted to prevent
     *    partial commits and maintain consistent audit trails. Considering we 
     *    want to have a global access to audit, we would need to be dissociated
     *    from the scope of a branch, and branches are the only points of contention 
     *    for references, so it made sense to me to think of audit as an independent branch too.
     */
    class NT_API NamespaceReferenceManager
    {
    };
}