Skip to content

eventuate-examples/eventuate-examples-realguardio

Repository files navigation

An Eventuate project

logo

This project is part of Eventuate, which is a microservices collaboration platform.

RealGuardIO - a fictional commercial real estate security system platform.

This project is a fictional commercial real estate security system platform. It’s the sample application for a series of articles about authentication and authorization in microservices:

  1. Overview of authentication and authorization in a microservice architecture

  2. Implementing authentication

  3. Implementing simple authorization

  4. Developing complex authorization

  5. Implementing complex authorization using Oso Cloud - part 1

  6. Implementing complex authorization using Oso Cloud - part 2

Application architecture

Security Architecture

The key elements of the RealGuardIO architecture are as follows:

  • React-based UI - runs in the browser and implements the RealGuardIO UI.

  • BFF - the NextJS/Typescript-based Backend for front-end, which plays the role of an OAuth 2.0 client. It manages the user’s session, forwards requests from the React UI to the backend services and implements security using the next-auth library.

  • IAM service - handles authentication including the login page and issues access tokens and ID tokens to BFF.

  • Security System Service - manages SecuritySystems

In addition, there’s jaeger for distributed tracing.

Code tours

Coming soon.

Running the application

The application uses Docker Compose to run the services.

To run the application, you simply need to install the following prerequisites: Docker.

You can run the application using the following command:

docker compose up -d --build

You can stop the application using the following command:

docker compose down

Using the application

You can access the application at http://localhost:3000.

The credentials are user1/password.

Jaeger distributed tracing

Jaeger is used for distributed tracing in this application. It allows you to trace requests as they flow through services.

You can access the Jaeger UI at http://localhost:16686.

Developing the application

The application is written in Java, Typescript and React. To do development, you simply need to install and setup the following prerequisite: Mise. Mise will then install Java 17 and Node.js v22.x for you.

Contributing

Contributions are welcome.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published