Cloud Native Engineering
We design and build high-scale, cloud native enterprise systems using modern distributed-systems techniques — event-driven architectures, serverless compute, and policy-based security.
A self-contained, API-driven system for executing independent
snippets of code (Capsules) activated by a set of
pre-determined Triggers, upon the occurrence of
Events.
The architecture is event-based: microservices don't communicate
directly via synchronous APIs, but instead publish Events
to a stream, as well as consuming them. It runs on a
Kubernetes cluster, which manages
all compute, storage, and network resources.
A permission mechanism gives tight control over security access, so that only authorized actors can install Capsules, define Triggers, and generate Events.
See it on BitBucket »A lightweight, gRPC-based Finite State Machine server, written in
Go. Business entities — orders, users, devices, or anything else
with a lifecycle — are modeled as FSMs, driven by
configuration-defined states and transitions,
and advanced asynchronously as events arrive.
The design optimizes for simplicity and efficiency: a single
fsm-server instance, backed by a modest Redis cluster, is
expected to track millions of state machines and process several
thousand events per second.
Configurations are immutable and versioned — the
states and transitions an FSM can traverse
are fixed once published, so an in-place change can never leave a
running FSM in an undefined state.
A Java library for transparent integration with JSON Web Tokens (JWT) authentication and authorization via an Open Policy Agent server, with a blueprint for injecting OPA authorization into a Spring Security Reactive (WebFlux) application.
It aims to simplify an application's ability to:
By keeping authorization logic (in Rego policies) separate from business logic (in the application's REST controllers), this library makes it easier to achieve a clean separation of concerns.
See it on GitHub »A collection of advanced C++ building blocks for implementing distributed systems — mostly meant for learning advanced algorithms and modern C++ (up to C++17) features. They include:
To complement these, we've also built a C++ REST API framework and a command-line Argument Parser.
See it on GitHub »