Olivier von Dach Software Craftsman

Edgelab – Client relationships management

2021

Why

Edge Laboratories wants to better control the access and consumption of the endpoints that make up its public API, so that fine-grained billing can be implemented.

What

  • To design and develop an API for the management of clients, and organizations with their users.
  • To design and develop an API for the management of permissions.
  • To design and develop a user interface.

Requirements

  • To be the source of truth for API keys and permissions of users of organizations.
  • To automatize the manual process in place.

Challenges

  • To integrate token-based authentication with OIDC.
  • To integrate with Edgelab API gateway as source of API-keys and permissions.

Organization

Team of 2 software engineers (me) and 1 product owner

Practices

Software Development

  • Specification by Example
  • Behaviour-Driven Development (BDD)
  • Acceptance-Test-Driven Development (ATDD)
  • Continuous delivery

Software Design

  • REST API design
  • Domain-Driven Design (DDD)
  • Clean & Hexagonal architecture
  • Micro-services architecture
  • Reactive programming

Technology

  • Kotlin, Spring-Boot, Reactor
  • Angular, Typescript
  • OAuth, OIDC, Auth0
  • PostgreSQL
  • Jenkins CI, OpenSearch, Grafana, Logstash, Prometheus, Jaeger, Kong, Consul, Vault, Docker, Nomad
  • Terraform, Amazon Cloud