Skip to main content
← Back to companies
Yassir logo

Yassir

Algeria200+ employees
Yassir is the leading Super App for French Speaking Africa

Yassir is the leading Super App for French Speaking Africa

YC W20

About the Company

Yassir is the “super app” category leader in French-speaking Africa, using on-demand services such as ride hailing and last mile delivery, which solve important and immediate needs, so to build unconscious trust in order to fuel financial services for this large but previously underserved population (+80% unbanked without large scale on demand services).

Tech Stack

Yassir infrastructure is mainly hosted in GCP and relies on many GCP services

Main architecture components

Mongodb Database Mongo Atlas fully managed DB Cluster of 5 nodes 1 master 2 secondary 1 read only 1 for BI/Analytics Hosted in GCP, in the same region as Kubernetes cluster’s region, for low latency. Redis 1 x Memory Store node which is a fully managed Redis as service hosted on GCP Used for : Caching Queue Broker for Socket IO

Exposed backend Language : NodeJS Role/purpose : Authentication of token based requests Verification of token signature Autorisation based on user’s role extracted from token, to access specific url paths Proxy requests to internal backend Internal backend Language : NodeJS Sits behind the exposed backend, Assumes coming requests are already authenticated and authorized. Communicate with MongoDB directly

Socket IO server Takes care of real time communication use cases Used Redis as broker for scalability. Parallel processes can handle multiple socket connexions Other processes like workers or internal backend could broadcast or send messages through the Broker (Redis).

NodeJS Scheduled Jobs Same code base as Internal Backend Have access to DB Jobs are scheduled using Kubernetes Jobs configuration Example jobs: Calculate drivers invoicing status by the month Calculate drivers invoicing status by the day Various scheduled exports Reset monthly consumed balance for b2b users Time consuming asynchronous Real time jobs Fault tolerant
We use Google Cloud, Cloud Functions Node Js We use a Google Cloud PubSub as Queue, Each topic of the queue triggers a cloud function each time a message is pushed into Used mainly for : generate invoices and various email attachments Send emails Send push notifications Real time tasks Workers: Same code base as Internal Backend Have access to DB Multiple process running in parallel for maximum concurrency Processes are listening to ultra fast Redis based Queue. Each message produced to queue is consumed by a worker as Task Once a task is completed by a worker, it will listen again for new messages This architecture guarantees that a task is consumed only one time, and therefore executed by max one worker. Usage: Trip/Order assignment Send driver/courrier location to rider/customer through socket, on each location update while driver on approach GCP load balancer is used to managed routing of requests SSL traffic is handled at GCP LB level. Socket requests are proxied to socket io server Other requests are proxied to the exposed Exposed backend

Founders

Noureddine Tayebi
Noureddine Tayebi
el mahdi Yettou
el mahdi Yettou

Ready to start your space career at Yassir?

Shipping like we're funded. We're not. No affiliation.

Sequoia logo
Y Combinator logo
Founders Fund logo
a16z logo