Svakako, izložiću vam opširan članak koji se odnosi na izvor događaja koristeći Python.
Event Sourcing (ES) je moćan arhitektonski obrazac koji bilježi sve promjene napravljene u stanju aplikacije kao niz događaja. Umjesto da samo pohranjuje trenutno stanje podataka u bazu podataka, Event Sourcing također pohranjuje slijed radnji ili promjena koje su dovele do trenutnog stanja.
Event Sourcing predstavlja radikalan zaokret od tradicionalnih metoda , kažnjavajući CRUD implementacije u korist pristupa koji više koristi princip "uzrok-posljedica" i koji može pomoći u reviziji, otklanjanju grešaka i složenim poslovnim procesima.
Otklanjanje problema: Zašto izvor događaja?
Aplikacije napravljene korišćenjem CRUD pristupa često nailaze na poteškoće kada se raspituju o istorijskim podacima. Informacije se gube svaki put kada se stanje ažurira. Izvor događaja osigurava da se svi prijelazi stanja pohranjuju kao zasebni zapisi događaja. Ovi zapisi se u potpunosti mogu pratiti, što omogućava analizu prošlih stanja, kako je sistem došao do trenutnog stanja, pa čak i predviđanje budućih stanja.
class Event:
def __init__(self, name):
self.name = name
class State:
def __init__(self, event_sequence):
self.sequence = event_sequence
Gornji isječak Python koda predstavlja osnovnu strukturu koja pokazuje kako događaji i stanje mogu biti predstavljeni.
Putovanje kroz kod
Evolucija izvora događaja može se podijeliti na tri glavna proceduralna koraka: 1. Naredba 2. Događaj 3. Rukovalac događajima.
Komanda odgovara unosu radnje koja treba da se izvrši, nakon čega slijedi događaj; zapis radnje nakon njenog završetka. Posljednji korak, rukovalac događajima, ažurira stanje u skladu sa promjenama sistema.
class Command:
def __init__(self, type, payload):
self.type = type
self.payload = payload
class EventHandler:
def __init__(self, state):
self.state = state
def handle_event(self, event):
self.state.sequence.append(event)
Gornji Python kod ilustruje klase Command i EventHandler. Naredba se inicijalizira tipom i korisnim opterećenjem, gdje EventHandler prihvata stanje i ima metodu za rukovanje novim događajima.
Kopanje po Python bibliotekama: izvor događaja
U Pythonu, Eventsourcing biblioteka je odličan alat za primjenu ES-a u vašim aplikacijama. Pruža jednostavno, ali robusno sredstvo za spremanje i preuzimanje niza događaja putem Python medija.
from eventsourcing.application import Application
class EventSourcingApplication(Application):
def __init__(self):
super().__init__()
app = EventSourcingApplication()
Ovaj isječak pokazuje upotrebu biblioteke za uspostavljanje osnovne postavke aplikacije za ES sistem.
Svestranost i moć Event-Sourcinga čine ga imperativnom implementacijom za moderne arhitekture u kojima su podaci i istorija važni. Kroz Python-ovu jednostavnost i korišćenje neverovatnih biblioteka kao što je Eventsourcing, postavljanje ES sistema postaje dostižniji cilj.