Skip to content
This repository was archived by the owner on Jan 5, 2026. It is now read-only.

Commit e98d27b

Browse files
committed
chore: refactor services
1 parent 8f2e7d7 commit e98d27b

10 files changed

Lines changed: 101 additions & 97 deletions

File tree

eventcatalog/asyncapi-files/inventory-service.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,31 +42,31 @@ operations:
4242

4343
channels:
4444
inventoryReserved:
45-
address: inventory/reserved
45+
address: inventory.reserved
4646
messages:
4747
InventoryReserved:
4848
$ref: '#/components/messages/InventoryReserved'
4949

5050
inventoryReleased:
51-
address: inventory/released
51+
address: inventory.released
5252
messages:
5353
InventoryReleased:
5454
$ref: '#/components/messages/InventoryReleased'
5555

5656
inventoryUpdated:
57-
address: inventory/updated
57+
address: inventory.updated
5858
messages:
5959
InventoryUpdated:
6060
$ref: '#/components/messages/InventoryUpdated'
6161

6262
orderCreated:
63-
address: order/created
63+
address: order.created
6464
messages:
6565
OrderCreated:
6666
$ref: '#/components/messages/OrderCreated'
6767

6868
orderCancelled:
69-
address: order/cancelled
69+
address: order.cancelled
7070
messages:
7171
OrderCancelled:
7272
$ref: '#/components/messages/OrderCancelled'

eventcatalog/asyncapi-files/order-fulfillment-service.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,19 +28,19 @@ operations:
2828

2929
channels:
3030
inventoryReserved:
31-
address: inventory/reserved
31+
address: inventory.reserved
3232
messages:
3333
InventoryReserved:
3434
$ref: '#/components/messages/InventoryReserved'
3535

3636
orderShipped:
37-
address: order/shipped
37+
address: order.shipped
3838
messages:
3939
OrderShipped:
4040
$ref: '#/components/messages/OrderShipped'
4141

4242
shipmentDelivered:
43-
address: shipment/delivered
43+
address: shipment.delivered
4444
messages:
4545
ShipmentDelivered:
4646
$ref: '#/components/messages/ShipmentDelivered'

eventcatalog/asyncapi-files/orders-service.yml

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -42,36 +42,50 @@ operations:
4242

4343
channels:
4444
orderCreated:
45-
address: order/created
45+
address: order.created
4646
messages:
4747
OrderCreated:
4848
$ref: '#/components/messages/OrderCreated'
4949

5050
orderCancelled:
51-
address: order/cancelled
51+
address: order.cancelled
5252
messages:
5353
OrderCancelled:
5454
$ref: '#/components/messages/OrderCancelled'
5555

5656
orderCompleted:
57-
address: order/completed
57+
address: order.completed
5858
messages:
5959
OrderCompleted:
6060
$ref: '#/components/messages/OrderCompleted'
6161

6262
paymentFailed:
63-
address: payment/failed
63+
address: payment.failed
6464
messages:
6565
PaymentFailed:
6666
$ref: '#/components/messages/PaymentFailed'
6767

6868
shipmentDelivered:
69-
address: shipment/delivered
69+
address: shipment.delivered
7070
messages:
7171
ShipmentDelivered:
7272
$ref: '#/components/messages/ShipmentDelivered'
7373

7474
components:
75+
schemas:
76+
OrderItem:
77+
type: object
78+
properties:
79+
itemId:
80+
type: string
81+
description: Unique identifier for the item
82+
quantity:
83+
type: integer
84+
description: Quantity of the item ordered
85+
price:
86+
type: number
87+
format: float
88+
description: Price of the item
7589
messages:
7690
OrderCreated:
7791
description: 'Event triggered when an order is created'
@@ -100,18 +114,7 @@ components:
100114
type: array
101115
description: List of items in the order
102116
items:
103-
type: object
104-
properties:
105-
itemId:
106-
type: string
107-
description: Unique identifier for the item
108-
quantity:
109-
type: integer
110-
description: Quantity of the item ordered
111-
price:
112-
type: number
113-
format: float
114-
description: Price of the item
117+
$ref: '#/components/schemas/OrderItem'
115118

116119
OrderCancelled:
117120
description: 'Event triggered when an order is cancelled'

eventcatalog/asyncapi-files/payment-service.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,31 +42,31 @@ operations:
4242

4343
channels:
4444
orderCreated:
45-
address: order/created
45+
address: order.created
4646
messages:
4747
OrderCreated:
4848
$ref: '#/components/messages/OrderCreated'
4949

5050
paymentProcessed:
51-
address: payment/processed
51+
address: payment.processed
5252
messages:
5353
PaymentProcessed:
5454
$ref: '#/components/messages/PaymentProcessed'
5555

5656
paymentFailed:
57-
address: payment/failed
57+
address: payment.failed
5858
messages:
5959
PaymentFailed:
6060
$ref: '#/components/messages/PaymentFailed'
6161

6262
orderCancelled:
63-
address: order/cancelled
63+
address: order.cancelled
6464
messages:
6565
OrderCancelled:
6666
$ref: '#/components/messages/OrderCancelled'
6767

6868
refundInitiated:
69-
address: refund/initiated
69+
address: refund.initiated
7070
messages:
7171
RefundInitiated:
7272
$ref: '#/components/messages/RefundInitiated'

eventcatalog/asyncapi-files/user-service.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ operations:
1414

1515
channels:
1616
userSignedUp:
17-
address: user/signedup
17+
address: user.signedup
1818
messages:
1919
UserSignedUp:
2020
$ref: '#/components/messages/UserSignedUp'
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
node_modules
22

33
# The Codegen Project - generated files
4-
src/__gen__/channels
4+
src/__gen__

services/orders-service-codegen/codegen.mjs

Lines changed: 0 additions & 15 deletions
This file was deleted.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { TheCodegenConfiguration } from '@the-codegen-project/cli';
2+
const config: TheCodegenConfiguration = {
3+
inputType: "asyncapi",
4+
inputPath: "../../eventcatalog/asyncapi-files/orders-service.yml",
5+
language: "typescript",
6+
generators: [
7+
{
8+
preset: "channels",
9+
outputPath: "src/__gen__/channels",
10+
protocols: ["nats"]
11+
},
12+
{
13+
preset: "types",
14+
outputPath: "src/__gen__/",
15+
}
16+
]
17+
};
18+
export default config;

services/orders-service-codegen/src/index.ts

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,17 @@ interface ShipmentDelivered {
4242
}
4343

4444
// ============================================================================
45-
// Channel addresses (NATS subjects - using dots as per NATS convention)
46-
// Based on AsyncAPI spec addresses converted from slashes to dots
45+
// Channels (keys are AsyncAPI channel IDs, values are NATS subjects)
4746
// ============================================================================
4847
const CHANNELS = {
4948
// Channels this service PUBLISHES to
50-
ORDER_CANCELLED: 'order.cancelled',
51-
ORDER_COMPLETED: 'order.completed',
49+
orderCancelled: 'order.cancelled',
50+
orderCompleted: 'order.completed',
5251

5352
// Channels this service SUBSCRIBES to
54-
ORDER_CREATED: 'order.created',
55-
PAYMENT_FAILED: 'payment.failed',
56-
SHIPMENT_DELIVERED: 'shipment.delivered',
53+
orderCreated: 'order.created',
54+
paymentFailed: 'payment.failed',
55+
shipmentDelivered: 'shipment.delivered',
5756
} as const;
5857

5958
// ============================================================================
@@ -112,8 +111,8 @@ class OrdersService {
112111
sendOrderCancelled(data: OrderCancelled): void {
113112
if (!this.nc) throw new Error('Not connected to NATS');
114113

115-
this.nc.publish(CHANNELS.ORDER_CANCELLED, this.jc.encode(data));
116-
console.log(`📤 [${CHANNELS.ORDER_CANCELLED}] OrderCancelled sent:`, data);
114+
this.nc.publish(CHANNELS.orderCancelled, this.jc.encode(data));
115+
console.log(`📤 [${CHANNELS.orderCancelled}] OrderCancelled sent:`, data);
117116

118117
// Update internal state
119118
const order = this.orders.get(data.orderId);
@@ -129,8 +128,8 @@ class OrdersService {
129128
sendOrderCompleted(data: OrderCompleted): void {
130129
if (!this.nc) throw new Error('Not connected to NATS');
131130

132-
this.nc.publish(CHANNELS.ORDER_COMPLETED, this.jc.encode(data));
133-
console.log(`📤 [${CHANNELS.ORDER_COMPLETED}] OrderCompleted sent:`, data);
131+
this.nc.publish(CHANNELS.orderCompleted, this.jc.encode(data));
132+
console.log(`📤 OrderCompleted sent:`, data);
134133

135134
// Update internal state
136135
const order = this.orders.get(data.orderId);
@@ -150,7 +149,7 @@ class OrdersService {
150149
* When an order is created (by another service/frontend), track it internally
151150
*/
152151
private async handleOrderCreated(data: OrderCreated): Promise<void> {
153-
console.log(`📥 [${CHANNELS.ORDER_CREATED}] OrderCreated received:`, {
152+
console.log(`📥 [${CHANNELS.orderCreated}] OrderCreated received:`, {
154153
orderId: data.orderId,
155154
userId: data.userId,
156155
totalAmount: data.totalAmount,
@@ -180,7 +179,7 @@ class OrdersService {
180179
* When payment fails, the order should be cancelled
181180
*/
182181
private async handlePaymentFailed(data: PaymentFailed): Promise<void> {
183-
console.log(`📥 [${CHANNELS.PAYMENT_FAILED}] PaymentFailed received:`, data);
182+
console.log(`📥 [${CHANNELS.paymentFailed}] PaymentFailed received:`, data);
184183

185184
const order = this.orders.get(data.orderId);
186185
if (!order) {
@@ -208,7 +207,7 @@ class OrdersService {
208207
* When shipment is delivered, the order should be marked as completed
209208
*/
210209
private async handleShipmentDelivered(data: ShipmentDelivered): Promise<void> {
211-
console.log(`📥 [${CHANNELS.SHIPMENT_DELIVERED}] ShipmentDelivered received:`, data);
210+
console.log(`📥 [${CHANNELS.shipmentDelivered}] ShipmentDelivered received:`, data);
212211

213212
const order = this.orders.get(data.orderId);
214213
if (!order) {
@@ -242,7 +241,7 @@ class OrdersService {
242241
if (!this.nc) throw new Error('Not connected to NATS');
243242

244243
// Subscribe to OrderCreated events
245-
const orderCreatedSub = this.nc.subscribe(CHANNELS.ORDER_CREATED);
244+
const orderCreatedSub = this.nc.subscribe(CHANNELS.orderCreated);
246245
this.subscriptions.push(orderCreatedSub);
247246

248247
(async () => {
@@ -256,10 +255,10 @@ class OrdersService {
256255
}
257256
})();
258257

259-
console.log(`📬 Subscribed to: ${CHANNELS.ORDER_CREATED}`);
258+
console.log(`📬 Subscribed to: ${CHANNELS.orderCreated}`);
260259

261260
// Subscribe to PaymentFailed events
262-
const paymentFailedSub = this.nc.subscribe(CHANNELS.PAYMENT_FAILED);
261+
const paymentFailedSub = this.nc.subscribe(CHANNELS.paymentFailed);
263262
this.subscriptions.push(paymentFailedSub);
264263

265264
(async () => {
@@ -273,10 +272,10 @@ class OrdersService {
273272
}
274273
})();
275274

276-
console.log(`📬 Subscribed to: ${CHANNELS.PAYMENT_FAILED}`);
275+
console.log(`📬 Subscribed to: ${CHANNELS.paymentFailed}`);
277276

278277
// Subscribe to ShipmentDelivered events
279-
const shipmentDeliveredSub = this.nc.subscribe(CHANNELS.SHIPMENT_DELIVERED);
278+
const shipmentDeliveredSub = this.nc.subscribe(CHANNELS.shipmentDelivered);
280279
this.subscriptions.push(shipmentDeliveredSub);
281280

282281
(async () => {
@@ -290,7 +289,7 @@ class OrdersService {
290289
}
291290
})();
292291

293-
console.log(`📬 Subscribed to: ${CHANNELS.SHIPMENT_DELIVERED}`);
292+
console.log(`📬 Subscribed to: ${CHANNELS.shipmentDelivered}`);
294293
}
295294

296295
// =========================================================================
@@ -340,13 +339,13 @@ class OrdersService {
340339
console.log('═'.repeat(60));
341340

342341
console.log('\n📤 Publishing to channels:');
343-
console.log(` • ${CHANNELS.ORDER_CANCELLED}`);
344-
console.log(` • ${CHANNELS.ORDER_COMPLETED}`);
342+
console.log(` • ${CHANNELS.orderCancelled}`);
343+
console.log(` • ${CHANNELS.orderCompleted}`);
345344

346345
console.log('\n📥 Subscribing to channels:');
347-
console.log(` • ${CHANNELS.ORDER_CREATED}`);
348-
console.log(` • ${CHANNELS.PAYMENT_FAILED}`);
349-
console.log(` • ${CHANNELS.SHIPMENT_DELIVERED}`);
346+
console.log(` • ${CHANNELS.orderCreated}`);
347+
console.log(` • ${CHANNELS.paymentFailed}`);
348+
console.log(` • ${CHANNELS.shipmentDelivered}`);
350349

351350
await this.setupSubscriptions();
352351

0 commit comments

Comments
 (0)