Skip to content

Instantly share code, notes, and snippets.

View martinez099's full-sized avatar
🏠
Working from home

Martin Forstner martinez099

🏠
Working from home
View GitHub Profile
@martinez099
martinez099 / inventory_service.py
Created April 8, 2020 19:51
order_created() event handler subscribed to `order` events
def order_created(self, _item):
if _item.event_action != 'entity_created':
return
order = json.loads(_item.event_data)
rsp = send_message('read-model', 'get_entity', {'name': 'cart', 'id': order['cart_id']})
cart = rsp['result']
result = self._decr_from_cart(cart)
order['status'] = 'IN_STOCK' if result else 'OUT_OF_STOCK'
self.event_store.publish('order', create_event('entity_updated', order))
@martinez099
martinez099 / order_service.py
Last active April 8, 2020 19:05
billing_created() handler subscribed to events:order in order_service.py
def billing_created(self, _item):
if _item.event_action != 'entity_created':
return
billing = json.loads(_item.event_data)
rsp = send_message('read-model', 'get_entity', {'name': 'order', 'id': billing['order_id']})
order = rsp['result']
if order['status'] != 'IN_STOCK':
return
@martinez099
martinez099 / entity-info
Last active February 14, 2019 17:21
use redis-cli for that
127.0.0.1:6379> TYPE customer_ids
set
127.0.0.1:6379> SMEMBERS customer_ids
1) “3b1c09fa-2feb-4c73-9e85-06131ec2548f”
2) “47c33e78-5e50-4f0f-8048-dd33efff777e”
3) “8bedc5f3-98f0-4623-8aba-4a477c1dd1d2”
4) “5f12bda4-be4d-48d4-bc42-e9d9d37881ed”
5) “aceb5838-e21b-4cc3-b59c-aefae5389335”
6) “63a95f27-42c5-4aa8-9e40-1b59b0626756”
@martinez099
martinez099 / stream-info
Last active February 14, 2019 17:20
use redis-cli for that
127.0.0.1:6379> XINFO STREAM events:order_created
1) “length”
2) (integer) 10
3) “radix-tree-keys”
4) (integer) 1
5) “radix-tree-nodes”
6) (integer) 2
7) “groups”
8) (integer) 0
9) “last-generated-id”