Experience with modularity in consul Journal Article uri icon



  • AbstractThe use of modularity in the design and implementation of complex software simplifies the development process, as well as facilitating the construction of customized configurations. This paper describes our experience using modularity in Consul, a communication substrate used for constructing fault‐tolerant distributed programs. First, Consul is presented as a case study of how modularity is feasible in both the design and the implementation of such systems. Secondly, general lessons about modularity in fault‐tolerant systems based on our experience with Consul are given. Issues that are addressed include deciding how the system is divided into various modules, dealing with problems that result when protocols are combined, and ensuring that the underlying object infrastructure provides adequate support. The key observation is that the modularization process is most affected by dependencies between modules, both direct dependencies caused by one module explicitly using another's operation and indirect dependencies where one module is affected by another without direct interaction. Although our observations are based on designing and implementing Consul, the lessons are applicable to any fault‐tolerant distributed system.

publication date

  • October 1, 1993

has restriction

  • closed

Date in CU Experts

  • December 7, 2013 12:31 PM

Full Author List

  • Mishra S; Peterson LL; Schlichting RD

author count

  • 3

Other Profiles

International Standard Serial Number (ISSN)

  • 0038-0644

Electronic International Standard Serial Number (EISSN)

  • 1097-024X

Additional Document Info

start page

  • 1059

end page

  • 1075


  • 23


  • 10