Sobes.tech
Назад к вопросам
Middle
5

Знаком ли с Event Sourcing? Использовали ли у себя?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Event Sourcing — это архитектурный паттерн, при котором все изменения состояния системы сохраняются как последовательность событий, а не просто текущее состояние. Вместо того, чтобы хранить только итоговые данные, система хранит историю изменений, что позволяет восстанавливать состояние в любой момент времени и анализировать историю.

В Python можно реализовать Event Sourcing, например, используя библиотеки вроде eventsourcing или самостоятельно, создавая слой событий и агрегатов.

Пример простого события и агрегата:

class Event:
    def __init__(self, data):
        self.data = data

class AccountCreated(Event):
    pass

class Account:
    def __init__(self):
        self.events = []
        self.balance = 0

    def apply(self, event):
        if isinstance(event, AccountCreated):
            self.balance = event.data.get('initial_balance', 0)

    def create(self, initial_balance):
        event = AccountCreated({'initial_balance': initial_balance})
        self.apply(event)
        self.events.append(event)

Использовал Event Sourcing в проектах для обеспечения полной трассируемости изменений и упрощения отката состояния.