I’m at the Black Crowes concert, chugging Diet Root Beer, eating Bread Pudding and… blogging!
By now there’s no need to explain Chatter, the big announcement of Dreamforce. While it might not win any big sales, it will certainly give Salesforce.com significant ‘lock-in’ with customers. While it’s easy to export customer and deal data, it’s just not possible to export a history of ‘live’ social interactions. Trust me, I know about it — my company sells an enterprise wiki and we have ALL our interactions online. Discussions, collaborative editing, company announcements. That history is more valuable than the base information itself.
The most interesting thing about Chatter was what it took to implement within the Salesforce architecture. According to Peter Coffee, director of Platform Research, they had to do a LOT of work to integrate Chatter into the Security model, even expanding the model to take into account new abilities to secure hierarchies of data. Rather than taking the quick-and-dirty ‘vertical’ approach, they’ve implemented a full ‘horizontal’ stack to implement the new services.
Peter’s an interesting fellow, very enthusiastic about the company and its platform. I especially enjoyed his 4-point argument to convince CIOs to move to the cloud:
- Avoid capital expenditure
- Instantly scale as required
- Instant kill-switch if things don’t work out as expected (no hardware to write-off!)
- Superior productivity, with 3 studies apparently showing 5x productivity over .Net/Java
Some of those points are hard to dismiss. My company is trying to implement Disaster Recovery to a fail-over data center but it needs almost real-time synchronisation to avoid downtime and loss of data. I managed to chat with Thomas Spingola (VP, Technology) who pointed out that this is the reason why people should move to Salesforce’s platform — because they do all the hard work for us!
Here’s Spingola explaining how they have managed to introduce the 5-minute upgrade:
If you’re interested in the Force.com platform, try and view the recording of today’s Force.com State of the Nation presentation.
I managed to have a great chat with Craig Weissman, Salesforce.com’s CTO, and I asked him some heavy questions about the architecture decisions they made for their multi-tenant architecture. For a CTO, he sure knows his systems! Here’s some of what I learned:
- They had a big debate on whether to have ‘wide’ database columns for custom fields, or whether to use ‘pivot tables’ — in the end they actually used both (it’s explained in the white paper)
- Picklists are stored as values, but if you store a new value via Apex code, the system assume it’s intentional and stores the value as metadata, assigning a number
- The reason that IDs are sometimes 15-characters and sometimes 18-characters is because they are case sensitive. Windows apparently loses the case, so the extra 3 characters give the string its unique identity if case is lost (this is apparently documented in the API manuals).
- The rather unusual ‘bulk database operations’ are a mirror of Oracle’s PL/SQL ‘foreach’ capability. They figured if the database can operate efficiently in bulk, then why not try to mirror it in the actual system architecture!
- Key staff within Salesforce have access to customer’s metadata so they can run tests, but they can’t access customer’s actual data. For example, tests are run before major releases to try and find things that break.
- Custom Settings are a great way to avoid having to continually retrieve data from table, thereby improving performance
- In future, they’d like to enhance SOQL by adding things like
Here’s some random stuff I picked up from various speakers:
- They hope to introduce URL rewriting so you can create your own ‘logical’ URLs that could even be used for REST calls to Visualforce
- The new ‘Aloha Look’ isn’t just to be pretty — it’s to enable new functionality and to clean up little annoyances like having the Related Lists pop-up when you drag from the tabs to the main body of an object (yeah, I hate that!)
- In future, they’d like to introduce Drag & Drop within Visualforce, rather than having to code it up in text.
- In case you didn’t know, the platform is written in Java on a Linux platform, using Oracle as the database, with bits of PL/SQL. They’ve got their own optimizer to handle Organization partitions and to work against their multi-tenant architecture.
I rounded out the day by attending a Hackathon in the Force.com campgrounds. It was really fun programming up some Visualforce surrounded by experienced developers and Salesforce staff — in fact, it was hard to type without having each keystroke corrected from an on-looking developer. We didn’t win, but I’ll blog later about the hack we made!
The Bottom Line
- There are
somea lot of very, very smart people in Salesforce and their systems are well architected, implemented and maintained
- Dreamforce rocks!