About Us
Our Mission
Empower every business to take control of their digital transformation.
Our team is passionate about making software development more accessible, faster, cheaper and higher quality and we've been on this
mission since 2006.
FormulaDB is the latest iteration of our technology which empowers non-developers to customize and build web applications, vastly
speeding up the digital
transformation of any organization.
FormulaDB Timeline
- 2006: generated UIs based on simple JSON metadata for simple SET/GET operations, all custom logic hand-coded
- Noticed that customers are asking very often for Excel Exports
- 2009: Designed more strict API for implementing custom business logic: Ruby (Activerecord) for server side, Backbone.js on
client
site
- Started wondering why business experts can build complex Spreadsheets but have difficuly understanding and reasoning
with
basic imperative
programming constructs: variables, control flow
- 2013: Tried to build a metadata language for implementing custom business logic using jquery-like DSL for defining RDBMS-like
triggers between
domain
model entities (tables), targeted at non-programmers but still techincal people: QA, Support, Deployment
- Problem: imperative programming is difficult to work with by non-programmers. Breaking down a task into imperative
programming control flow
statements, keeping track of mutating state, these are hard for non-programmers
- 2015: FormulaDB concept started to take shape, use the same metadata approach as before: define Entities (or Tables) but the
business logic should
be
defined in a pure functional domain specific language, no more imperative trigger definitions.
- At this point it was clear why non-programmers can sucessfully use Spreadsheets: pure functional formulas, no
state/variables to keep track
of,
no side-effects to keep track of mentally, a user could build a complex spreadsheet focusing on one formula at a time
- However Spreadsheets have issues:
- "Various studies report that nearly 9 out of 10 spreadsheets (88%) contain errors"
*,
because
it is difficult to see what you
have messed up 2-3 Sheets away when you change/add/delete a formula. (TODO: more research on this issue needed
to
better identify
the
root causes)
- More importantly spreadsheets don't help users implement concurrency and business transactions
- The challenge for FormulaDB was how to enable users to work with familiar formulas/functions but in the same time allow
them
to implement
business transactions, some classic examples:
- inventory management with real-time stock positive validations
- money transfers between accounts with real-time balance positive validations
- The name chosen back then was MetaWiz (Metadata Wizard) instead of FormulaDB
- 2016: Actively started working on FormulaDB (MetaWiz)
- 2017: Kappa architecture Streaming plaform/framework PoC powered by Kafka Streams (Event Sourcing/CQRS).
- The aim was to allow developers to implement custom business logic/transactions (mostly in the IoT industry) without
worrying about
scalability
(failover, sharding), ACID, distributed transactions, etc. Ideally users would just implement the actual business logic
without any
boilerplate,
the platform would make sure that logic would run in a event-sourced distributed scalable environment, providing
consistency
where needed
(paying the associated performance penalties).
- 2017: FormulaDB, MVP powered by CouchDB/PouchDB with Formula Engine and Transaction Manager added on top offering full ACID-like
guarantees
- 2018: abstracted storage layer, added in-memory as a reference implementation and Postresql as the production implementation,
dropped CouchDB for
now
- 2018 Sep: joined
Techcelerator
- 2018 Dec: Seed Round from Gapminder, FORMULA DATABASE company created
- 2019 April: started moving UI from an Angular-based form builder to a full blown website builder covering Intranet/Corporate as
well
as Internet
use-cases
Inspiration and Credits
A big "Thank You" to a lot of smart people and good technologies who inspired us and continue to inspire us, we list here just a few in
no
particular order:
- Event sourcing/CQRS
- imperative vs functional vs declarative vs logic vs rules-engines vs visual (BPEL, BPMN, UML) programming
- Spreadsheets formula engines, Recursion
- Stream processing (Storm, Spark Streaming, Kafka Streams)
- DDD aggregates with eventual consistency using events
- Cassandra seamless massive scaling and constraints imposed on CQL to maintain predictable performance (e.g. partition key),
tunable
consistency,
timeuuid, LWT
- Kafka consumer groups fail-over and load-balancing, Kafka Streams State Stores
- Kappa architecture (Jay Kreps)
- Turning database inside out (Martin Kleppmann), duality table-stream
- Persistent Data Structures, Clojure/Datomic (Rich Hickey), Immutable.js, Durable Persistent Data Structures
- Polyglot Persistence (Martin Fowler)
- Elasticsearch timestamped indexes, Kibana, curator
- https://www.reactivemanifesto.org/, http://reactivex.io/, rxjs and marble testing
- Key Value Stores, Document stores, Column-oriented Stores, Immutable data stores, CouchDB replication and conflict management
- PouchDB and LevelUP ecosystem
- Git, diff, merge, conflict management, consistency
- Database Cracking, auto-tuning databases
- Distributed transactions and business transactions: 2PC, 3PC, Saga pattern
- Consensus: Paxos, Raft
- Kafka transactions
- Graph Databases, graph traversal query languages (openCypher, Gremlin, GraphQL)
- Generated UIs, Apache Isis
- HATEOAS
- Openstack, Kubernates, DC/OS: scaling an failover is being built into cloud tools, the DB can borrow functionality from these
tools
and not
implement it
internally
- Jepsen tests, Netflix Chaos Monkey, testing for distributed systems/databases
Our Team
Alex Cristu - CEO
Sorin Cirstoiu - COO
Valentin Raduti - CTO
Laurentiu Soica - CIO
Laura Cristu - Business Analyst
Miruna Pria - Web Designer
Testimonials
Dan Zybaczynski
General Manager,
Orbico Beauty Romania
The FormulaDB team helped us implement our custom Sales Force Automation workflows with real-time stock reservations and
integrating them to our main ERP solution. These workflows are very important as they give us a competitive advantage in the
marketplace.
Bogdan Mitrica
Owner,
DACRIS
As our business grew the MS Excel spreadsheet we used to manage our team, products and customers, became very large, complex
and
almost unmanageable. The FormulaDB team helped us transform that enormous spreadsheet into a custom app tailored to our
specific
needs.
Orlando Dragomir
CEO,
ENSIDATA GROUP
Our company offers a great deal of IT services and webdesign, however we could not offer custom business software services
without building a strong and expensive programming team. With our partners from FormulaDB we can offer custom business
software
services very easily to our customers.