Skip to content

A. Design pattern

Separation of Concerns

  • Keep frontend, backend, and database independent.

Service-Oriented Architecture (SOA)

API-first Development:

  • Design APIs before implementation to enable parallel development.

Event-Driven Architecture

  • Use event streams for real-time updates
  • Kafka,
  • AWS::SQS + AWS::EventBridge
  • RMQ::StreamingQueue

Serverless Architecture (auto-scale,etc)

  • AWS :: Lambda
  • for scalable and cost-effective solutions.
  • Other AWS serverless offering
  • fargate (ECS/EKS)
  • sqs,s3
  • AWS DB :: DynamoDB,Aurora

Twelve-Factor App 👈


B. Infrastructure components:

Front-end

Backend

  • GraphQL APIs : pending
  • frameworks for RESTful APIs
  • java --> SpringBoot
  • js/ts/nodejs --> Express.js
  • py --> Django/fastApi

  • API Gateway:

  • Routing, authentication, rate-limiting
  • ingress server in K8s
  • Microservices
  • deploy via
    • containers (Docker)
    • orchestration (Kubernetes) : pods+services
    • 03_Kubernetes
  • https://github.com/lekhrajdinkar/03-spring-cloud-v2/tree/main/Notes
  • 01_monolith_MicroServices.md00_kickOff
  • Load Balancers
  • AWS :: ELB/Elastic Load Balancer - alb, nlb,
  • NGINX
  • Cloud services : AWS: lambda, s3, sqs, etc
  • 01_aws

Database

  • Relational Databases:
  • PostgresSQL / Aurora(serverless)
  • MySQL
  • NoSQL Databases
  • MongoDB,
  • Cassandra,
  • AWS:DynamoDB
  • Horizontal scaling : aws serverless takes care
  • Distributed architecture
  • primary writer instance
  • multiple READ instance
  • replication with encryption at rest.
  • AWS serverless takes care.
  • Caching:
  • Redis
  • Memcached

CI/CD pipeline

  • GitHub Actions
  • Harness
  • containerization: docker/k8s

Observability and Monitoring (log,metric,traces)

  • OpenTelemetry
  • micrometer
  • Prometheus, grafana, AWS:CloudWatch
  • Application health
  • distributed tracing
  • AWS:CloudWatch>x-rays

Authentication and Authorization


C Design Aspect

scalability

reliability

flexibility

maintainability

Observability