I think it very good idea create repository or Sticky topic with links and short description of software is created using mORMot.
G-Lock EasyMail7 is the first email marketing software for Windows built on a client-server model.
You get two components: EasyMail7 Server and EasyMail7 Client. You can install the EasyMail7 Server
on a local computer, or on a network Windows server, or on a cloud-based server for example Amazon EC2 or Windows Azure Virtual Machine.
Warning: this thread is only to notify about applications created using mORMot.
One post per application!
Please do not post in this thread for reactions or questions about one or another product, but rather create a new thread instead if you want to discuss.
Any post which would not follow this expectation will be deleted without further notice...
If you accept that your application is quoted in our framework documentation and web site, and/or your logo displayed, please notify it in the application post or by email to us.
The PC software manages one or several workstations, allows custom assays programming, orders and results transmission to the main laboratory system, several levels of reporting, audit trail tracking, with a secured and self-maintained database containing all orders and history.
JSON Tools - A little tool to format and visualise JSON data.
This uses the JSON capabilities in mORMot to format and visualise JSON data. I often need to format JSON from an API/REST service. One of our internal tools also returns DB results back, which makes the Grid View handy.
It uses SQLite database, mORMot for client-server communication and ORM, SynPDF for creating PDF.
Delivery and spam testing service and IP Reputation Monitor.
After your message reached a mailbox provider, what happened? Marketers need tools to measure their Inbox placement and determine whether their messages are reaching their recipients or getting stuck in spam folders.
It’s very easy to send email, but it’s very hard to do it right. Don’t make the mistakes that will have you marked as a spammer; protect your brand’s reputation now!
Our seed list based deliverability test covering dozens of Inboxes worldwide discovers how your email is placed across major ISP, at what Gmail tab your email is delivered and what ISP blocked your message. Plus, it verifies the sender authentication such as DKIM and SPF, checks the email against spam filters and tracks email delivery duration.
Here is a sample delivery/email placement report
Valuable email placement reports help you track and fix possible deliverability problems to land in the recipient’s Inbox.
If you can find the time to run delivery tests before you email all your subscribers, you'll know if your emails trigger anti-spam filters, and you'll have a chance to tweak your content and land in everyone's Inbox. Plus, a test will show you if there is a temporary issue with email delivery at your ESP and you'll be able to delay your email campaign until the problem is fixed, or send the campaign through a different ESP if it's important and must be delivered on time. Temporary delivery issues may occur with any ESP and g-lock apps deliverability/Inbox Placement tests will help you reveal them in advance and take steps to get email campaigns sent seamlessly.
Back-end - mORMot server on Amazon EC2 instance (Windows Server 2012)
Front- end - jQuery + custom library
A use case "use mORMot to scale a web application to unlimited users"
Database layer: Interbase 2009, Intebase XE7, Oracle
Application server layer: mix of Delphi and NET
web server layer: NET
In memory database + application server layer: mORMot
The amount of concurrent active web users increased rapidly,
and we needed to create a kind of cache layer that would serve data instead of the database.
Sounds like a classic easy to solve problem using cache or mirror databases, but:
- amount of data changes in ive betting datasets is 4.000.000 per day (800 updates/sec at peak time)
- data need to be available if requested by the end user in real time (max 500 millisec after change)
- The nature of service required complex select statements (each user can have his own data filters,
means almost all db tables need to be in cache and accessible with standard sql commands)
We tried several solutions, including mirroring and in memory databases:
- SQL Server with in memory tables: needs 128GB RAM per instance. Queued data after 80 inserts/sec
- Oracle Times Ten: runs ok for selects, but too slow to load data, no way to udpate the cache in real time
- MySQL mirrors: needs the commercial version and expensive hardware to run really "in memory"
- No SQL or key-value (Mongo, Couch etc): It would require to rewrite half the system.
Could be a solution if we had 50 developers only for this.
- NewSQL (these new fancy NuoDB, VoltDB etc): They dont seem to be ready for main production systems.
- finally, made a try with mORMot and guess what...
The final solution using mORMot:
An "all in one" in-memory SQLite3 + http server as implemented within mORMot.
-Data is loaded at startup (in 30 sec) from the "main" database.
-Real time data updates after initial load:
Interbase XE7 --> creates an "Interbase event" --> updates the in-memory SQLite3 in mORMot
-In parallel, the mORMot serves all http requests at the application server layer.
In production since October 2015.
Runs super fast and reliable.
hardware required: usual servers, 12-16GB RAM
Can scale to theoretically unlimited users by just adding low cost machines to run separate instances of mORMot based service.
And a big THANK YOU to Arnaud Bouchez and his friends over there!
Last edited by aloe (2015-12-12 17:37:52)
We start to develop a UnityBase in 2013 - just after I found the brilliant mORMot. It started as a internal product for our company. Before UnityBase we had a similar solution based on the COM+, Windows Scripting Host & Delphi UI. But our customers became larger (COM+ is SLOW, WSH is SLOW) and demanded Web version, so I decide to use mORMot (especially low level Syn* classes) for a database access, HTTP server and threading layer.
As a result we embedded a SpiderMonkey to the server level and publish this part to mORMot as SynSM.
After a three years of development and a dozen of implemented projects, UnityBase becomes powerful enough to present it to the world. So, this is a first public announce. Now we are working on the documentation and improving our web site.
For sure, mORMot is faster since we add an additional layer of abstraction. But UnityBase is also fast enough, faster when NodeJS or .Net Core - see the benchmark project on GitHub.
Benchmarks project also includes instructions for installation and start-up.
Many thanks to Arnaud and all mORMot contributors mORMot is the best Delphi project that I've ever seen.
Arnaud's professionalism and patience knows no boundaries..