
If a user is banned on their home instance, that ban is federated out to all instances. If a user is banned on a remote instance, they’re just banned locally on that instance, and their account remains active for all other instances.
They’re likely some remote users who have interacted enough with your instance to be federated over, and then banned on their home instance.
i second the comment that you need to consider why you want to do this. You generally need a pretty good reason to split your codebase into multiple languages.
As far as actually doing it, you have a ton of different options, some of which have been mentioned here. Some i can think of off the top of my head:
basically every approach is going to require you to come up with some sort of API that the two work together through, though, an API in the generic sense is basically a shared contract two disconnected pieces of code use to communicate.