Wireless Sensor Networks (WSN) comprise a fast-developing research area with a vast spectrum of applications. A WSN design is influenced by many factors such as transmission errors, network topology and power consumption. Consequently, developing a WSN application introduces several implementation challenges. In this paper, we describe a multi-criteria architecture in order to achieve energy-aware and consistent message forwarding over a WSN. Using the proposed architecture a directed acyclic graph (DAG) is formed throughout the WSN. Such DAG is used for multi-source data aggregation to a single sink. Intermediate nodes evaluate their energy reserve and induced error and decide whether message retransmission is needed. A sink is necessary in order to collect process and probably forward these data to a more sophisticated system for further processing. The discussed architecture is developed using TinyOS, an event-driven lightweight operating system designed for sensor network nodes, and nesC, a highly modular and declarative extension of C.