When designing a distributed system, good practices like using modular architectures or applying design patterns are always desirable, but there are relevant aspects that may initially go unnoticed even if we carefully approach the task by the book. Among them, there are a number of decisions to be taken about the specifics of the communications between system nodes: the format of the messages to be sent, the desired/demanded features of the network (latency, bandwidth...), etc.   In particular, one of the most common problems in distributed systems design and implementation is the definition of a good approach to node failure or netsplits management. In fact, these are concerns that, in many cases, arise once the system is already at deployment stage. Different contingency mechanisms can be proposed to solve this kind of problems, and they vary greatly from one another: choosing which and how to implement them depends not only on the technology used, but also on the communications network reliability, or even the hardware where the system will be running on.   In this paper we present ADVERTISE, a distributed system for advertisement transmission to on-customer-home set-top boxes (STBs) over a Digital TV network (iDTV) of a cable operator. We use this system as a case study to explain how we addressed the aforementioned problems from a declarative point of view.
['Macías López', 'Laura M. Castro', 'David Cabrero']
Declarative distributed advertisement system for iDTV: an industrial experience