Building blocks are modular packages of functionality that serve business needs, have defined published interfaces, can be composed from other blocks, and may have multiple implementations. All these characteristics are fundamental to the building block concept in enterprise architecture.