π Open-source Contributions
Contributions across many projects β’ Go β’ Kubernetes β’ Azure β’ AI/ML
My day-to-day work involves open-source projects (databases, messaging systems etc.). In addition to teaching and advocating for these technologies, I contribute back in the form of features, documentation etc.
π LangChain
-
amazon-bedrock-langchain-go β
langchaingo wrapper implementations for Amazon Bedrock. You can make use of these with existinglangchaingo
components such as LLM and embedding, including chains. -
langchain-go-postgresql-vectorstore ποΈ
langchaingo extension to use PostgreSQL pgvector as a vector database for your Go applications. It uses the pgvector-go. You can use this in your LangChain applications as a standalone vector database or more likely, as part of a chain. -
langchaingo-dynamodb-chat-history π¬
LangChain chat history memory implementation using Amazon DynamoDB.
π§ͺ Testcontainers module for DynamoDB Local
π³ Developer Experience & Testing
Having a piece of infrastructure supported as a Testcontainers module provides a seamless, plug-and-play experience. The same applies to DynamoDB Local, and that’s where Testcontainers module for DynamoDB Local comes in!
β¨ Key Benefits:
- Easy local testing for Go-based DynamoDB applications
- Docker-based integration
- Zero-configuration setup
π AWS IAM authentication to secure Go apps
You can use this package to authenticate your Go apps to Amazon MemoryDB (and Amazon ElastiCache) for Redis using AWS IAM.
π Learn More: Here is the blog post that demonstrates this in action
βοΈ Dapr (CNCF)
Dapr is a portable, event-driven runtime that makes it easy for any developer to build resilient, stateless and stateful applications that run on the cloud and edge and embraces the diversity of languages and developer frameworks.
π Contributions to the Dapr
project:
- β Implemented Azure Event Hubs PubSub component
- β Added support for Couchbase as a state store
- β Implemented Hazelcast state store feature
- β Added support for Aerospike as state store
- β Added SASL authentication to Apache Kafka binding
- β Implemented NATS Streaming pub-sub
π Debezium
π Data Streaming & Change Data Capture
Implemented Azure Event Hubs plugin for Debezium Server that allows you to push stream database change events to Azure Event Hubs.
Debezium is a set of distributed services to capture changes in your databases so that your applications can see those changes and respond to them. In addition to this, Debezium also provides a ready-to-use application (Debezium Server) that streams change events from a source database to different messaging infrastructures.
β‘ Kubernetes Event-driven Autoscaling (KEDA) - a CNCF project
π Auto-scaling & Event-driven Architecture
KEDA is a Kubernetes-based Event Driven Autoscaler. With KEDA, you can drive the scaling of any container in Kubernetes based on the number of events needing to be processed.
π§ Scaler Improvements:
Made several additions and improvements to KEDA
scalers including Kafka, Redis, Event Hubs and more.
π― Some other things I enjoyed working on
… that a lot of folks found useful!
- kubexpose π - A Kubernetes Operator to access your Deployment over the Internet.
- Redis Streams in Action β‘ - Go, Rust, Java services to showcase Redis Streams and
RediSearch
. - Kafka on Kubernetes βοΈ - Series of blog posts that cover Apache Kafka on Kubernetes using the open-source Strimzi Operator.
- funcy π§ - Slack app as a Serverless backend using Go and Azure Functions.
π€ Let's Connect!
Interested in collaborating or have questions about any of these projects?