GithubHelp home page GithubHelp logo

archisman-mridha / instagram-clone Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 1.0 1.15 MB

Demonstrating how to build and deploy fault tolerant distributed systems by building a battle tested Instagram Clone | For educational purposes only

License: MIT License

Rust 52.53% Makefile 0.81% Shell 2.47% Go 18.92% Java 3.01% TypeScript 13.46% JavaScript 0.76% HCL 2.30% Dockerfile 5.71% CSS 0.03%
apache-flink apache-kafka cloudnative debezium distributed-systems elasticsearch golang graphql grpc kubernetes

instagram-clone's Introduction

Holla, I am Archi ๐Ÿ˜‰

I am interested in Rust | Distributed Systems | Database architectures | Kubernetes and CloudNative technologies | Blockchains.


My Tech Stack

  • Rust - I love Rust! It's my primary language for my personal projects - like implementing the core Ethereum protocol | building Instagram clone | trying to implement different softwares like Redis / Git by myself.
  • GoLang - I use it professionally in my day job and personally for writing custom Kubernetes controllers / backend microservices (if I am in a hurry).

    I really like the concurrency primitives that GoLang provides - channels and go-routines and am interested in understanding how they are implemented under the hood (TODO : Read - https://go.dev/src/runtime/proc.go).

  • TypeScript - For building web frontends, using SvelteKit / NextJS

    I don't enjoy writing Typescript / building frontends much (except in case of exceptional projects like Fiberplane)

  • Terraform - For managing cloud infrastructure. With Terraform, I use Terragrunt for multitenancy and Terratest for writing end-to-end infrastructure tests.
  • Kubernetes - The layer on top of any cloud platform I use, to orchestrate microservices and avoid cloud platform vendor lock-in.
  • Solidity and Foundry - To write, test and deploy smart contracts.

2024 goals

  • Contribute to WasmTime | Fermyon Spin | SurrealDB and other projects related to Rust, WASM and Web3

    My open-sourcing journey - https://github.com/users/Archisman-Mridha/projects/2

  • Dive deep into the core Ethereum protocol

    I am trying to implement it in Rust - https://github.com/Archisman-Mridha/ethereum-rust-implementation

  • Learn about zkSNARKs (Zero-Knowledge Succint Non-interactive Arguments of Knowledge), zkSTARKs (Zero-Knowledge Scalable Transparent Argument of Knowledge) | ZK Rollups - the solution to Ethereum scalability | Layer 2 Blockchains like Arbitrum and Polygon Mattic | PLONK (Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge) | Multi sig wallets | Cryptography.

    At the end of the year, atleast I should be comfortable with reading Proof, Arguments and Zero Knowledge

  • Become a Certified Kubernetes Administrator and AWS Solutions Architect Associate.
  • Learn about real time stream processing using Apache Flink | Implement it in my Instagram clone project.

How to reach me

Feel free to contact me anytime during the weekends!

instagram-clone's People

Contributors

archisman-mridha avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

khraiteka

instagram-clone's Issues

Find a solution for the `annotations too long` error

When installing some CRDs into the Kubernetes cluster using kubectl apply, an error occurs - Annotations too long.

The Annotations too long error in Kubernetes typically occurs when you are trying to create or update a Kubernetes resource and the combined length of the annotations for that resource exceeds the maximum allowed limit.

Because of the Annotations too long error, ArgoCD isn't able to install and sync some CRDs.

This error doesn't occur if you are creating the CRD for the first time using kubectl create. Currently I manually install those CRDs using the kubectl create command. But still, ArgoCD gets this error trying to sync those CRDs, thus leaving the related ArgoCD application in an always unsynced state.

Approach

https://www.arthurkoziel.com/fixing-argocd-crd-too-long-error/.

Send Prometheus alerts to Slack

I have used Kube Prometheus Stack helm chart to deploy Prometheus, Grafana and AlertManager to the Kubernetes cluster for observability. It will be really nice if AlertManager can push alerts to Slack.

Kube Prometheus Stack related files can be found here.

Approach

Create a Kubernetes Secret containing required AlertManager configs. Refer that Kubernetes Secret in the Kube Prometheus Stack helm installation values.

NOTE - Kube Prometheus Stack provides some useful AlertManager configs by default. If we follow the above approach, then those default configs will be ignored. Only configurations mentioned in the Kubernetes Secret will be loaded into the AlertManager pods.

Generate statically linked binaries for Rust based microservices

Currently, I am generating dynamically linked binary for each Rust based microservice. That library is then packaged in a debian based container.

I would like to generate static binary for each Rust based microservice using musl and package it in a scratch based container.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.