CSEPracticals - System Programming and Networking Development Courses

Only Projects and Courses - No DS/ALGO/CP !


System IPC Project : Develop Asynchronous PUB-SUB System

C/C++ Linux Project, IPC, Pub-Sub System, MQTT, C/C++ Programming, Operating Systems

Rating 0.0 (0)      0 students

Last Updated : 1/2025

Created by : Abhishek Sagar, Shivani Nigam, Ekta

  NEW  

image


What Will you Learn ?

  • You will be able to Design Application which require IPC

  • Understand Linux OS better and feel confident

  • Design a Linux process which could harness benefits of various IPC Mechanism at the same time

  • Choose the best IPC mechanism depending on the application requirement

  • Prepare for IPC based interview Questions

  • Implement Blocking Calls (Such as Dequeue will block if elements are not available in Queue)


Requirement

  • Must already be aware of IPC methods and how to implement basic programs on them.

  • No specific language requirement, do it in your fav programming language.


Who is the Audience ?

  • College Student or working professionals aiming to grow as a developer

  • Those looking to build career in system programming domain

  • Developers interested in building high-performance messaging systems.

  • Software Architects aiming to design scalable and maintainable systems.


Description 

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:

  1. Understanding Pub/Sub Fundamentals

    • How publishers and subscribers interact through topics.

    • Decoupling communication with message brokers.


  2. Designing the Architecture

    • Implementing message queues for efficient data flow.

    • Managing subscribers and topic registries.

    • Handling asynchronous communication and thread safety.


  3. 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.


  4. Optimizing for Performance

    • Implementing thread pools for parallel processing.

    • Minimizing latency with efficient data structures.


  5. Message Prioritisation:

    • Allow publishers to assign priorities to messages.

    • The distributor delivers higher-priority messages first to subscribers.


  6. Heartbeat and Health Checks:

    • Implement a heartbeat mechanism to check the liveness of publishers and subscribers.

    • Detect and remove inactive entities automatically.


  7. Dynamic Scaling:

    • Add auto-scaling support to adjust resources based on system load.


  8. Message Encryption:

    • Encrypt messages to secure data in transit and at rest.


Table of Contents

No chapter found in this course