Seamless Data Persistence in Simulation Models: A Metaprogramming Approach in Julia

Simulation software addresses complex problems that are difficult to solve analytically. Due to probabilistic elements, simulations often require multiple runs, generating critical decision-making data. However, many users are unfamiliar with the necessary persistence technologies to store and access this data, hindering effective utilisation. We propose a transparent data persistence architecture integrated into the ConcurrentSim package for the Julia programming language. By leveraging Julia's metaprogramming capabilities, we dynamically generate an object-relational mapping (ORM) model, automating data storage without requiring user expertise in persistence technologies. We provide two solutions for accessing the data, including a web-based interface for immediate access and a REST API for broader integration with external frameworks. The REST API allows for seamless incorporation of simulation data into diverse workflows, offering flexibility and ease of use. Our contribution improves the usability of the ConcurrentSim ecosystem and demonstrates the power of macro expansion in Julia for creating dynamic ORM configurations. Thereby, we simplify data persistence and enhance user productivity by removing most of the technical overhead, enabling users to focus on analysis.
Publication Reference
Van Der Paelt, P., Lauwens, B. and Signer, B.: "Seamless Data Persistence in Simulation Models: A Metaprogramming Approach in Julia", Proceedings of SIMUtools 2024, 16th EAI International Conference on Simulation Tools and Techniques, Bratislava, Slovakia, December 2024

Available: