For the last year, I've participated/headed our company's effort in replacing our existing python code hell with a transactional framework (in C++ with services in any language) that provides fault tolerance, easy deployment, secured event collection (because they provide billing info), load balancing, speed and scalability.
It is well documented, has example code and test cases, and it received good feedback from the rest of the devs.
I've starting to push it internally for an open source release since I thought that a framework that focuses on fault tolerance, transactional routing and scalability and other ops-oriented problems would be a good thing for the world.
Ironically enough, one of the main reasons for developing our own framework was that clobbering together ACE + X + Y + whatever would yield a framework hybrid that seemed to messy for us to rely on. We would not know the code base, be (initially) dependent on community provided bug fixes and we would still have to write a ton of glue to get everything off the ground. So after a bit of soul searching regarding Not Invented Here, we decided to strike out on our own.
However, after reading TFA, I realise that I may actually be Satan himself planning to release a new and improved rider of the apocalypse on the world.
Why is this wrong? The company is bogged down by a crappy framework with huge performance issues and unclear API boundaries. Our new framework is 20-1000 times faster, provides a clearly defined API, and is asked for by other dev teams.
Rolling our own framework gave us a single integrated (but not monolithic) codebase where the developer can log, store events, send transactions, do threads, manage signals, access DB backends and read configuration data using one API.
The framework does take ownership of the main loop, and you do need to write plugins for your services. You can, however, register your own descriptors with the poll dispatcher in order to get a callback whenever traffic happens on it. We provide a basic worker thread model, but you are free to launch as many additional threads as you want.
What did I do wrong? Should I be shot?