
After the end of this section of the course, You can browse the snapshot of the code by following the below steps :
git clone <github URL to the pub-sub repo>
cd pub-sub
git reset --hard a1075840b136450e245cca5800edafb00d8dfa72
<now browse the code as you like >
To restore the code repo to latest, use git pull
After the end of this section of the course, You can browse the snapshot of the code by following the below steps :
git clone <github URL to the pub-sub repo>
cd pub-sub
git reset --hard 7cbb7a4e0c6290ef4afdd6760ac8bbb465b098a0
<now browse the code as you like >
To restore the code repo to latest, use git pull
Attach is the tlv.h hdr file. Put it in Libs dir.
After the end of this section of the course, You can browse the snapshot of the code by following the below steps :
git clone <github URL to the pub-sub repo>
cd pub-sub
git reset --hard df66e284134efc94e04e7e5ea40d017ae53c2e1c
<now browse the code as you like >
To restore the code repo to latest, use git pull
After the end of this section of the course, You can browse the snapshot of the code by following the below steps :
git clone <github URL to the pub-sub repo>
cd pub-sub
git reset --hard 7ff3e5e5f5e1ef4378795edecf97ca04ddede191
<now browse the code as you like >
To restore the code repo to latest, use git pull
Update Makefile :
COORDINATOR_OBJS=CoordinatorCore/coord_start.o \
CoordinatorCore/coordDb.o \
CoordinatorCore/coord_msg.o \
Common/cmsgOp.o \
CoordinatorCore/CoordDistribution.o
CoordinatorCore/CoordDistribution.o:CoordinatorCore/CoordDistribution.cpp
${CC} ${CFLAGS} CoordinatorCore/CoordDistribution.cpp -o CoordinatorCore/CoordDistribution.o
After the end of this section of the course, You can browse the snapshot of the code by following the below steps :
git clone <github URL to the pub-sub repo>
cd pub-sub
git reset --hard bbceea14d92cd10ac995e14751851e93fa895291
<now browse the code as you like >
To restore the code repo to latest, use git pull
After the end of this section of the course, You can browse the snapshot of the code by following the below steps :
git clone <github URL to the pub-sub repo>
cd pub-sub
git reset --hard 68ebe3932eefe0751e8af082d024a26247d54aa6
<now browse the code as you like >
To restore the code repo to latest, use git pull
Pub/Sub System in C/C++: Course Overview
Unlock the Power of Asynchronous Communication with Pub/Sub in C/C++
Welcome to this comprehensive course on designing and implementing a robust Publish-Subscribe (Pub/Sub) System using C/C++. This course is tailored for developers who aspire to master the principles of real-time messaging systems and understand how to build scalable, efficient, and loosely-coupled communication architectures from scratch.
What is a Pub/Sub System?
A Publish-Subscribe system is a messaging paradigm that decouples the sender (publisher) from the receiver (subscriber). It allows for seamless communication between multiple components by enabling subscribers to receive updates on topics they are interested in, without being directly tied to the publisher. This design is widely used in real-world applications like:
Messaging Systems: RabbitMQ, Kafka
Microservices Communication
IoT and Real-Time Event Systems
What You Will Learn
In this course, we’ll build a fully-functional Pub/Sub system using C/C++, covering every essential concept step by step:
Understanding Pub/Sub Fundamentals
How publishers and subscribers interact through topics.
Decoupling communication with message brokers.
Designing the Architecture
Implementing message queues for efficient data flow.
Managing subscribers and topic registries.
Handling asynchronous communication and thread safety.
Building Core Components in C/C++
Publisher: A module to publish messages to specific topics.
Subscriber: A module to subscribe to topics and receive updates.
Broker: The central hub to manage topics, deliver messages, and coordinate between publishers and subscribers.
Optimizing for Performance
Implementing thread pools for parallel processing.
Minimizing latency with efficient data structures.
Message Prioritisation:
Allow publishers to assign priorities to messages.
The distributor delivers higher-priority messages first to subscribers.
Heartbeat and Health Checks:
Implement a heartbeat mechanism to check the liveness of publishers and subscribers.
Detect and remove inactive entities automatically.
Dynamic Scaling:
Add auto-scaling support to adjust resources based on system load.
Message Encryption:
Encrypt messages to secure data in transit and at rest.
Who Should Enroll?
Developers interested in building high-performance messaging systems.
C/C++ Programmers seeking hands-on experience with real-world software design patterns.
Software Architects aiming to design scalable and maintainable systems.
Learners exploring the implementation of microservices and event-driven architectures.
Why Take This Course?
By the end of this course, you’ll have the skills and confidence to:
Design and implement your own Pub/Sub system in C/C++.
Understand the principles behind distributed messaging systems.
Solve real-world problems with efficient communication architectures.
Join now and start your journey towards mastering Pub/Sub systems in C/C++. Let’s build something amazing together!