# I like to know what is nakama doing behind the scenes

**URL:** <https://forum.heroiclabs.com/t/i-like-to-know-what-is-nakama-doing-behind-the-scenes/5769>\
**Category:** Runtime Framework\
**Created:** [November 3, 2024, 10:19am UTC](https://forum.heroiclabs.com/t/i-like-to-know-what-is-nakama-doing-behind-the-scenes/5769 "2024-11-03T10:19:54Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![virtouso](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.heroiclabs.com/virtouso/32/679_2.png) [@virtouso](https://forum.heroiclabs.com/u/virtouso)\
**Post date:** [November 3, 2024, 10:19am UTC](https://forum.heroiclabs.com/t/i-like-to-know-what-is-nakama-doing-behind-the-scenes/5769/1 "2024-11-03T10:19:54Z")

</div>

is it possible?

I like to know, for example, when authenticating a new user, what code is running on the backend side, or what database changes are applied. This helps me better understand how to write my extension APIs.

is there docs or any way to read the code nakama runs?  
as I searched, nakama is open source. is this the source code of nakama?

> **[GitHub - heroiclabs/nakama: Distributed server for social and realtime games...](https://github.com/heroiclabs/nakama)**
>
> Distributed server for social and realtime games and apps.

it means instead of writing server plugin, I can clone this and continue developing on this?

---

<div class="post-metadata">

**Author:** ![rephlex187](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.heroiclabs.com/rephlex187/32/2377_2.png) [@rephlex187](https://forum.heroiclabs.com/u/rephlex187)\
**Post date:** [November 3, 2024, 11:47am UTC](https://forum.heroiclabs.com/t/i-like-to-know-what-is-nakama-doing-behind-the-scenes/5769/2 "2024-11-03T11:47:01Z")

</div>

Hello virtouso,

yes, Nakama is completely open source and that is the correct repository, you may just clone it and do any changes you like.

By following the desired function calls in the code you can track all functionalities behind them.  
[The runtime file in the server package](https://github.com/heroiclabs/nakama/blob/master/server/runtime.go) gives a pretty nice overview over all the available functions and is a good starting point to track references in the code.

You may also implement custom logic without modifying the base repository, by writing custom modules as explained [here.](https://heroiclabs.com/docs/nakama/server-framework/introduction/index.html)

The nakama runtime accepts custom modules in multiple programming languages (go, typescript, lua).
