kevinbcarpenter / restful-with-billions

Repository for abstract and code related to a talk.
MIT License
20 stars 1 forks source link

Being RESTful with billions of dollars in transactions, thanks to C++, JSON and HTTP.

Repository for abstract and code related to a talk.

Submission Details

Tags: finance, JSON, HTTP, cpp17, cpp20 
Session Type: Case Study 
Level: Beginning to Intermediate
Audience: application developers, library authors
Session Material: slides, example code 

Slides
Source

Delivered

Core C++ June 6th, 2023 - Video
CppOnSea June 30th, 2023 - Video

Abstract

In this talk I provide my experience on the last three years of building restful interfaces in C++ using nlohmann::json and cpp-httplib. I will present a case study showing you the basics of how each of these header only libraries work, teasing out the pros and cons for our companies needs. Some insights into how Restful APIs like Stripe are created will be provided, and we’ll look at how using, and converting to strong types using proper design patterns can make your life easier if you go down the same route. Throughout the talk, I’ll specifically share in the experience gained from implementing RESTful APIs in credit card transaction systems with Mastercard/Visa. Join this session to learn how you can use JSON and/or HTTP to interface with almost anything.

Outline

Overview

Background:

Approach:

Findings:

Conclusion: What does it mean?

Time permitting…

Previous Versions

A variation of this was given in 2018 when we focused on using ZeroMQ for our internal systems. It was about using ZeroMQ for socket communications in our framework with JSON. Here I will focus more on JSON/HTTP integrating with any RESTFUL service, with our experience on the customer application side.

Scaling Financial Transactions using 0MQ and JSON - CppCon 2018
jz18sub GitHub

References

jwt-cpp
nlohmann::json
cpp-httplib

Fielding Dissertation
RESTful API Tutorial
JWT

cpp-httplib links

reddit
REST-CPP-benchmark
Alterntives Libhunt

nlohmann links

reddit
nativejson-benchmark
Boost Comparisons

Source

Of Interest...

nanobench
nanobench website
lithium
Modern cMake