Как реализовать audit log на Go?

Middle
113 просмотров
AFK Offer AI

Audit log — запись всех значимых действий: кто, что, когда, с какими данными. Таблица: actor_id, action, resource_type, resource_id, old_value (JSON), new_value (JSON), ip, timestamp. Запись асинхронно через канал или очередь. Append-only, никогда не удалять и не менять. Отдельная база/таблица чтобы не влиять на основную. Индексы на actor_id и resource.

Следующий вопрос

Что выведет: type T struct{}; func (T) M() { fmt.Println("T") }; type S struct { T }; func (S) M() { fmt.Println("S") }; var i interface{ M() } = S{}; i.M()?