Tally Developer Architecture

The Tally.ERP 9 architecture can be conceptualized as being divided into three layers:

  • The Application /Tally.ERP 9 Layer
  • The TDL Language and Interpreter Layer
  • The Platform Layer /Engine


All the user interactions take place at this layer. It is through this interface that the user gets access to all the product functionalities.


This layer is an intermediate between the application and the platform layer. This mainly consists of:

  • Tally Definition Language
  • TDL Interpreter


Tally Definition Language (TDL) provides capabilities for Rapid Development, Rendering, Data Management and Integration. This is the language used to deliver the capabilities that the platform provides – the entire user interface is built using TDL.

TDL is an Action driven language based on definitions. It comprises of the User Interface and Info/Data objects. User Interface Objects mainly determine the behavior of the product in terms of user experience. Info/Data objects are mainly used for data persistence in the Tally Database.


TDL works in an interpreted environment. An action performed by a user will trigger a particular segment of code to get executed. The interpreter examines each line and executes them.


The capabilities that TDL offers are due to the capabilities provided by the platform layer. This is the lowermost layer that interacts with the OS and the file system. The various components of the platform layer are:

  • Database Engine
  • ODBC Engine/Driver
  • Parser
  • Business Logic
  • Function Library
  • User Interface and Output Engine
  • Memory Management

All the retrieval and manipulation requests to the database by the application program are handled by the Database Engine. This is a true OODBMS. It is possible to store data as objects and retrieve data as objects. Stored as a block of data, this allows faster retrieval of data. Object-Oriented Recursive Management System follows the concept of Flexi-Length Record, Flexi-Field, and Self-Indexed weighted file structure for an extremely compact and fast database. Fault tolerance is built-in and along with transaction support (using roll forward capability), this provides an extremely robust system to withstand several system failures.

The File System consists of Data files (Master, Transaction, Link Masters), Message Files (for transaction management) and State Files (for concurrency and exclusivity control).