Distributed Event-based Systems