Skip to content

Commit

Permalink
Modeling checkout-api
Browse files Browse the repository at this point in the history
- Adding load test for checkout
  • Loading branch information
jurabek committed Nov 30, 2023
1 parent 0229c18 commit f5cb181
Show file tree
Hide file tree
Showing 10 changed files with 45 additions and 38 deletions.
29 changes: 17 additions & 12 deletions src/backend/backend.code-workspace
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,7 @@
"name": "github",
"path": "../../.github"
},
{
"name": "k8s-kustomize",
"path": "../../k8s-kustomize"
},
{
"name": "docker",
"path": "./docker"
},

{
"name": "checkout-api",
"path": "./services/checkout-api"
Expand All @@ -36,10 +29,7 @@
"name": "order-api",
"path": "./services/order-api"
},
{
"name": "nginx",
"path": "./nginx"
},

{
"name": "dashboard-app",
"path": "./web/web.admin/dashboard"
Expand All @@ -53,6 +43,21 @@
},
{
"path": "./services/protobuff"
},
{
"path": "./load-tests"
},
{
"name": "k8s-kustomize",
"path": "../../k8s-kustomize"
},
{
"name": "docker",
"path": "./docker"
},
{
"name": "nginx",
"path": "./nginx"
}
],
"settings": {
Expand Down
2 changes: 1 addition & 1 deletion src/backend/docker/otel-connector-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ exporters:
prometheus:
endpoint: "0.0.0.0:8889"
const_labels:
label1: value1
env: local

otlp:
endpoint: tempo:4317
Expand Down
4 changes: 3 additions & 1 deletion src/backend/load-tests/checkout.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,11 @@ export default function () {
picture: food.image,
quantity: Math.floor(Math.random() * 20),
unit_price: food.price,
}
}
]
}))

sleep(1);

http.post(baseUrl + '')
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { expect } from 'chai';
import sinon from 'sinon';
import { GetCustomerCartRequest } from './gen/cart/GetCustomerCartRequest';
import { GetCustomerCartResponse } from './gen/cart/GetCustomerCartResponse';
import { GetCustomerCartRequest } from '../gen/cart/GetCustomerCartRequest';
import { GetCustomerCartResponse } from '../gen/cart/GetCustomerCartResponse';
import { cartService } from './cartService';

describe('CartService', () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { config } from './config';
import { config } from '../config';
import * as grpc from '@grpc/grpc-js'
import * as protoLoader from '@grpc/proto-loader'
import { ProtoGrpcType } from './gen/cart';
import { ProtoGrpcType } from '../gen/cart';
import path from 'path'
import { GetCustomerCartResponse } from './gen/cart/GetCustomerCartResponse';
import { GetCustomerCartRequest } from './gen/cart/GetCustomerCartRequest';
import { logger } from './logger';
import { GetCustomerCartResponse } from '../gen/cart/GetCustomerCartResponse';
import { GetCustomerCartRequest } from '../gen/cart/GetCustomerCartRequest';
import { logger } from '../logger';


const packageDefinition = protoLoader.loadSync(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import * as api from '@opentelemetry/api';
import { randomUUID } from "crypto";
import { CartItem, CheckoutEvent, UserCheckout } from "./model";
import getCustomerCartItems from "./cartService";
import Payment from "./paymentService";
import { logger } from "./logger";
import checkoutPublisher from "./publisher";
import { CartItem, CheckoutEvent, UserCheckout } from "../model";
import getCustomerCartItems from "../cart/cartService";
import Payment from "../payment/paymentService";
import { logger } from "../logger";
import checkoutPublisher from "../messagging/publisher";

export default async function Checkout(checkout: UserCheckout) {
const span = api.trace.getTracer('checkout-api').startSpan('checkout-api.Checkout');
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Kafka, Producer, ProducerRecord } from 'kafkajs'
import { config } from './config'
import { logger } from './logger'
import { config } from '../config'
import { logger } from '../logger'

export class Publisher {
private producer: Producer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import sinon from 'sinon';
import { expect } from "chai";
import type * as grpc from '@grpc/grpc-js'
import { paymentService, pay } from "./paymentService";
import { CartItem, UserCheckout } from "./model";
import { PaymentResponse } from './gen/payment/PaymentResponse';
import { PaymentRequest } from './gen/payment/PaymentRequest';
import { CartItem, UserCheckout } from "../model";
import { PaymentResponse } from '../gen/payment/PaymentResponse';
import { PaymentRequest } from '../gen/payment/PaymentRequest';


describe("pay", () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { config } from './config';
import { config } from '../config';
import * as grpc from '@grpc/grpc-js'
import * as protoLoader from '@grpc/proto-loader'
import { ProtoGrpcType } from './gen/payments';
import { ProtoGrpcType } from '../gen/payments';
import path from 'path'
import { UserCheckout } from './model';
import { PaymentResponse } from './gen/payment/PaymentResponse';
import { PaymentRequest } from './gen/payment/PaymentRequest';
import { CartItem } from './gen/cart/CartItem';
import { UserCheckout } from '../model';
import { PaymentResponse } from '../gen/payment/PaymentResponse';
import { PaymentRequest } from '../gen/payment/PaymentRequest';
import { CartItem } from '../gen/cart/CartItem';

const packageDefinition = protoLoader.loadSync(
path.resolve(__dirname, '../pb/payments.proto'),
Expand Down
2 changes: 1 addition & 1 deletion src/backend/services/checkout-api/src/routes.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import express, { Request, Response } from "express";
import { UserCheckout } from "./model";
import Checkout from "./checkout";
import Checkout from "./usecases/checkout";

const router = express.Router();

Expand Down

0 comments on commit f5cb181

Please sign in to comment.