Hi Isbardel and everyone!
I'm quite impressed by what you've created with python-stdnet and I like the documentation.
Currently I'm considering the use of python-stdnet in a project, but one thing itches me:
The semantics of operations on a model instance "m" seem to be that the changes are only persisted to redis when "m.save()" is called. But looking at the code for the list, set and hashtable structures, those seem to be inconsistent. While "m.some_list.push_back(item)" is not persisted immediately, "m.some_list.pop_front()" is. Since I plan to access the same data from different processes almost simultaneously, I'm concerned this will impact the robustness of my distributed system when some developer is not always 100% aware of the semantics. And that, frankly, would defeat the main advantage of using an orm in my mind.
So why buffer some operations and not other? Wouldn't it be more in the spirit of redis to have all model changes immediately affect the database and offer pipelineing when the developer wants to use it?
Thanks for all your work and have a nice day!
(felix)