Přeskočit na obsah
_CORE
Know-How

Event-Driven Programming

7 min čtení
Event-DrivenArchitectureKafkaRabbitMQ

Event-driven architektura odděluje producenty a konzumenty. Loosely coupled, škálovatelné, resilientní systémy.

Publish/Subscribe pattern

# Python — simple event bus class EventBus: def __init__(self): self.handlers = {} def subscribe(self, event_type, handler): self.handlers.setdefault(event_type, []).append(handler) def publish(self, event_type, data): for handler in self.handlers.get(event_type, []): handler(data) bus = EventBus() bus.subscribe('user.created', send_welcome_email) bus.subscribe('user.created', create_default_settings) bus.publish('user.created', {'id': 1, 'email': '[email protected]'})

Kafka

# Producer from kafka import KafkaProducer producer = KafkaProducer(bootstrap_servers='localhost:9092') producer.send('events', json.dumps({'type': 'order.created', 'data': {...}}).encode()) # Consumer from kafka import KafkaConsumer consumer = KafkaConsumer('events', bootstrap_servers='localhost:9092') for message in consumer: event = json.loads(message.value) handle_event(event)

Klíčový takeaway

Events pro loosely coupled systémy. Kafka pro high-throughput, RabbitMQ pro complex routing.

CORE SYSTEMS tým

Praktické know-how z reálných projektů. Bez buzzwordů, s kódem.