Thank you Stephen for your response. I am interested in this task because it is a great engineering challenge which can help me learn a lot of things. With my basic knowledge of pub-sub model, this is the solution I came up with - We design a queue based pub/sub system for observing database change in the mailman core and this message is broadcasted. Then any independent client can subscribe to this message on the queue(by default implementation). As soon as there is any change, there will be a new change message on the subscribed feed and this will prompt the database to sync it with the mailman core database.
We can use a queue application like RabbitMQ or Kafka, and wrap and create a publisher on the mailman core using ZeroMQ library. We can use this to create a socket and create message and command that the client side database would need to run in order to sync itself. The same thing would be done on the client side, in which we can create a subscription model, which will subscribe to the message and check for the changes. Since we use Alembic for managing migrations, the queue will have to work closely with Alembic to observe all the changes and publish the required message. For the part of code which is responsible for handling database, I think it's src.mailman.database. This is all based on my preliminary research. Please let me know if I am wrong anywhere. I will correct myself and reinforce towards a better and new solution. Best Regards Shubhank On 30/03/21 11:52 am, Stephen J. Turnbull wrote: > Shubhank Saxena writes: > > > My name is Shubhank(https://gitlab.com/shubhank-saxena). > > Welcome, Shubhank! > > > I have now started to write a proposal in the same direction and I was > > wondering how can I start the discussion regarding the Mailman Core > > projects that are given on the webpage ( > > https://wiki.list.org/DEV/Google%20Summer%20of%20Code%202021). I am > > interested in the project "Support for REST Callbacks in Core". > > That starts the discussion. :-) Tell us about why you're interested > in that task, what you plan to do (to the extent you know -- some > people know a lot, some people know almost nothing, I can't say that > coming in with knowledge doesn't give the former a headstart, but for > those in the "know little" situation, plenty of students have caught > up in the past, you can do it too!) If you have questions about > what's expected, what part of the docs and code to start reading, etc, > asking those questions is a good place to start. > > > Also, is the IRC channel active? > > Well, it's open. At present, the core developers/mentors are in UTC-7 > and UTC+9, so getting together online at the same time is non-trivial. > It will be more active now that GCSoC applications are open (sorry, my > client seems to be unhappy after system upgrades, so I'm not online at > the moment). You can find me as yaseppochi and Abhilash as maxking in > #mailman. > > > I did not see any conversations happening so I was wondering if the > > mode of communication has shifted strictly to the mailing list? > > It depends on what we're doing. Up until now everybody was mostly > working solo, Abhilash on Mailman 3, Mark on Mailman 2 and user > support, me on user support and GSoC prep. So "asynchronous" > communication by mailing list made sense. It also provides a less > ephemeral record than IRC (yes logs, but AFAICS most people don't keep > logs all that much). > > Regards, > Steve > _______________________________________________ Mailman-Developers mailing list -- firstname.lastname@example.org To unsubscribe send an email to mailman-developers-le...@python.org https://mail.python.org/mailman3/lists/mailman-developers.python.org/ Mailman FAQ: https://wiki.list.org/x/AgA3 Security Policy: https://wiki.list.org/x/QIA9