Skip to content

Lessons Learnt

Josh Cooper edited this page Aug 28, 2025 · 2 revisions

Authentication

Do not attempt to roll your own auth, its too much hassle and causes all the services that are running (that aren't built specifically to work with each other) to be unconnected.

Realistically you should use something such as Keycloak as the main auth service and integrate from thereon.

Or at the bare minium you should expose an OIDC compatible endpoint which can be used to handle auth.

Repository Structure

Each service should be in its own repository even if the project is small. But do not use submodules. Treat each component as an isolated system to allow for easier development.

Have one overarching repository that contains stuff such as the overall launch file (or compose stack) and documentation.

This is not something worth fixing as you would end up loosing all previous commit history.

Central Libraries of Shared Components/Interfaces

There should be a central place to define stuff such as interfaces/data models and components. This would effectively prevent re-writing the structure of an event and a calendar tile between applications (aka student facing Yggdrasil, and tech facing Asgard-Admin).

Clone this wiki locally