SaFi Bank Space : Dev HOWTO

This page intention is to be start point for developers.

Repository

On the project we use git monorepo. Its URI is: https://github.com/SafiBank/SaFiMono. For access please contact Ion Mudreac @ Lark.

General rules for repo are:

  • No binaries (except UI stuff and gradle wrapper, etc)

  • No tooling configuration (.idea, .gradle)

  • No built and generated artefacts (in gradle like projects it means “build” folder)

  • No logs

Some things can be

Repository is organised as follows:

  • /services/* contains microservice modules. Each of the folders inside represents separate buildable module resulting into docker image. Microservice module names are lowercase separated by dashes. Eg. some-useful-manager or service-vendor-gateway. Currently we are going to use two types of suffixes:

    • manager - for module which usually has state and can handle some process. It serves its own services and consumes others. Example: some-useful-manager

    • gateway - usually stateless service, which encapsulates communication with third party. Translates domain entities into internal ones, meaning loose coupling and also covers security aspects. Only gateway is talking to the service outside of the Safi, and therefore only this gateway needs to be authenticated & authorised against 3rd party service.

  • /devops/* - devops related stuff

  • /app/* - frontend related stuff

Communication channels

Confluence

Collect business and IT requirements, flows etc. This should be the main source of information, resources at other places (Lark, google drive) should be linked from Confluence. If a Slack thread reaches an important conclusion, summarise it on Confluence as well.

Lark

Lark is used mainly to communicate product requirements with SaFi. It is for summarising documents and meeting minutes relevant for business people on SaFi side.

It is similar to Slack, but everything is invite-only, you can’t discover documents and channels unless you’re invited to them.

Ask your team lead if you need Lark access and which channels you need access to. (SaFi-IT-ALL, SaFi-IT-Architecture)

Setting up Lark
  • Go to https://www.larksuite.com/, press “Sign up”

  • Enter Company details - you need to create the “company” yourself (e.g. “Vacuumlabs”)

  • Once logged in you can use Lark applications like Messenger or Docs

Google Drive

The drive folder https://drive.google.com/drive/folders/13V3A0kJi81J63hFYCbpD7HEtSvCgQBSP is for quick & easy access to key external documents (like 3rd party docs) + internal ones irrelevant for the client (internal presentations, internal meeting minutes, etc., WIP product documents etc.)

Slack

Safibank Slack is used as the daily communication channel. It is used to discuss technical details and encountered difficulties. Make sure to document major decisions in the ADR list.

Ask your team lead which channels are needed for you to join.