There is a simple mode available on melpa, called obsidian. The issue with it which I am facing is that if you link using markdown in actual Obsidian, it is able to find the link in whichever subfolder of the vault the target is in. But this does not seem to work with the emacs mode. It searches only the top vault path - so creates a new file when the file actually already exists in some subfolder. Maybe it is something I am doing wrong, I will read the source code and figure out/change the code.
You can use vanilla org-mode with ID links. Or you can define a custom link type in org-mode, where the sky is the limit. Or you use org-roam V2.