Skip to main content

This is a contributors guide and NOT a user guide. Please visit these docs if you are using or evaluating SuperTokens.


Application architecture#

Please start by seeing this architecture page.#

Other parts of the architecture#

Other than the SDK and core layers, we have a few other components:

  • Database plugins: We have one Java plugin project per database. For example, this is the MySQL plugin.
  • Plugin interface: These are a set of Java interfaces that allows the core to use a database plugin that implements this interface. There are separate interfaces for SQL and NoSQL databases.
  • Core Driver Interface (CDI): This is an http API spec that is used to communicate between the core and the driver (backend SDKs)
  • Frontend Driver Interface (FDI): This is an http interface that is used to communicate between the frontend SDKs and the driver (backend SDKs).

About recipes#

A recipe is one independent auth module that can be consumed "as is". It can be consumed by users in their app, or by other recipes.

For example, the session recipe can be used as is in an app to provide it session management, but it is also used by other recipes (like emailpassword / thirdparty / emailverification) in sign in / up APIs or to know if a user is logged in on the frontend.

See the recipes page to learn more about recipes.

Looking for older versions of the documentation?
Which UI do you use?
Custom UI
Pre built UI