Crafting-Playground / Prototype

0 stars 0 forks source link

Define the initial requirements #3

Open nikakis opened 1 year ago

nikakis commented 1 year ago

Implement a prototype

Application - Microservices

Application layer

  1. Application Implementation
  2. databases (SQL & NoSQL)
  3. idempotent and versioned API
  4. authentication (sessions)
  5. authorization
  6. oauth2 implementation
  7. cron-jobs
  8. notifications (firebase, apns, emails)

Microservices oriented

  1. Interservice Communication
  2. communication protocol(API gateway, service mesh, message broker) (http, grpc, amqp)
  3. Asynchronous and synchronous APIs
  4. gateway, load balancer, rate limiting, TLS
  5. circuit breakers
  6. How the front-end is going to be served
  7. auditing
  8. scaling (applications and databases)
  9. distributed transactions
  10. deployment rollbacks
  11. common library
  12. Are DTOs for interservice communication going to be shared through common library or duplicated to each service
  13. Spring config server
  14. Feature flags

Monitoring

  1. Logs
  2. Metrics
  3. tracing
  4. Alerts

Infrastructure

Gitops

  1. Kubernetes hosting
  2. Kubernetes templating and deployment
  3. infrastructure as code
  4. CI/CD
  5. Continuous Inspection (SonarQuebe)
  6. dependantbot
  7. Jacoco
  8. Detect vulnerabilities (proabably we can use Trivy)

Repos

  1. Git Branching Strategies
  2. monorepo vs polyrepo

Testing

  1. unit tests
  2. integration tests
  3. stress tests
  4. A/B Testing
  5. penetration testing

Hosting

  1. TBD

Analytics / Data engineering

  1. TBD

Useful Links

  1. Miro Board
  2. Microservices Architecture by Microsoft