In this paper, we propose the hierarchical daisy architecture, which provides causal delivery of messages sent to any subset of processes. The architecture provides fault tolerance and maintains the amount of control information within a reasonable size. It divides processes into logical groups. Messages inside a logical group are sent directly, white messages that need to crass logical groups' boundaries are forwarded by servers. We proof the correctness of the daisy architecture and discuss possible optimizations.