Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

Event-Driven Programming

01. 01. 2024 1 min čtení intermediate

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’: ‘jan@example.com’})

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.

event-drivenarchitecturekafkarabbitmq