What about using a centralized SQL database such as (in order) SQLite, PostgreSQL, MySQL, or Microsoft SQL Server? Or maybe use LINQ if you're using .NET. Or if you really wanted to keep it simple you could use a combination of a hierarchical directory structure and flat text files (xml?). You'll just want to make sure to employ a file locking method or some way to eliminate collisions.