Booking Connectivity through Availability: bookings-core
- Type
- Project
Bookings-core's service layer used SignalR over sockets for real-time updates, CQS to separate commands from queries cleanly across a microservice architecture built on RESTful APIs and a defined set of messaging patterns, and a set of GoF patterns to keep the third-party integration boundary from leaking into the rest of the app. It ran on Docker containers on Kubernetes, with Elasticsearch feeding the logging and search side of the stack.
Retrieving availability data at the scale bookings-core needed, while working around real limits in the third-party platforms it integrated with, meant genuine optimization work, not just calling an API and caching the response.
I ran knowledge-transfer sessions for the wider tech team as the system grew, and when problems surfaced in open-source tools we depended on, I worked directly with their maintainers to get bugs fixed rather than working around them silently. The same discipline applied to third-party vendor support: when an integration broke, I engaged their technical teams directly to find the actual cause.
Built with
- C#
- XUnit / Moq
- SignalR (sockets)
- GoF design patterns
- Microservice Architecture
- RESTful APIs
- Messaging Patterns
- CQS (command-query separation)
- Microsoft SQL Server
- MySQL
- Redis
- AWS Lambda
- AWS SQS / SNS
- AWS EKS / ECS / ECR
- AWS DynamoDB
- AWS API Gateway
- AWS Route53
- Terraform
- Docker
- Kubernetes
- GitOps (Flux, Flagger)
- Elasticsearch
- Prometheus / Grafana
- SonarQube
- Bitbucket (Repositories, Pipelines)
- Slack
- Istio
- Rancher
- Traefik
- Spot by NetApp
- LogStash / Kibana (ELK)
- JIRA
- Shape Up methodology
- Toggl Track
- Notion
- Fluent Migrator
- Yeoman Templating
- PlantUML
- Postman
- MyGet (package management)
- GDPR Compliance