Monday 10 September 2018

Salesforce To KAFKA Inbound And Outbound Integration


1.What is Apache KAFKA & It’s  Benefits?

  • A powerful asynchronous messaging (Publish-Subscribe) technology
  • Streaming platform is a central hub for real time applications.
  • The view of data is as events rather than rows in database 
Benefits :
  • At some point enterprise system grows much and more complex and where decoupling of service is needed.There event driven architecture is the best fit.
  • It stores the messages in flat files and consumers ask messages based on an offset
  • The published messages/events to topics get persisted
  • Old messages can be retained on a time base (like expire_logs_days) and/or on a storage usage base
  • Kafka will record which messages were delivered to which consumer group, so that it doesn’t serve it up again
  • Kafka is having great performance also

2.  REST VS KAFKA ?

REST :
  • If we have a large number of applications REST layer for building request & response is poor fit.
  • Data quality issues may arise since that data is not real time
    •  Ex: 2 systems had similar data but found discrepancy in data
KAFKA :
  • There KAFKA comes into picture to focus on modeling streams of data.
  • KAFKA allow us to both transport these streams of data to all the systems and applications that needed them as well as build rich real-time applications on top of them.
  • A modern stream centric data architecture built around KAFKA
    • Ex: Backup or Stand By Copy of a database,Taking full dump may not be good option for large volume of data & It takes more system resources.Instead more efficient way is to take the difference of what has changed(New/Update/Delete) and fetch only those records.This kind of event stream is called change data capture.

3.  What are the different types of Change Data Capture ?

In databases, change data capture (CDC) is a set of software design patterns used to   determine (and track) the data that has changed so that action can be taken using the changed data. Also, Change data capture (CDC) is an approach to data integration that is based on the identification, capture and delivery of the changes made to enterprise data sources.
EX:
Oracle
XStream
GoldenGate
MySQL
binlog replication
Postgres
Logical Log Streaming Replication


 4. What are the different message brokers ?

    • RabbitMQ
    • Kafka
    • ActiveMQ
    • Kestrel

5. KAFKA to Salesforce ,How KAFKA push topics to Salesforce?


  • Risk : Don't overwhelm Salesforce with events coming from Kafka.Which may quickly hits the Governor limits.
  • Design Solution : As shown,The Microservice / Vendor App monitors the KAFKA and Only selective events (Events filter logic need’s to be implemented in this external system as per business rules) written to Salesforce.

6.Salesforce to KAFKA,How Salesforce push topics to KAFKA?

  • Consumer API logic contains connectivity to Salesforce & Like below to handle the events and send to KAFKA. Refer


Friday 7 September 2018

Salesforce Project Manager Interview Questions


1. What are the challenges faced as a scrum master and how did you overcome it?

Yaa, One of the recent project was very challenging
  1. Inherited project 
  2. Distributed Team
  3. Architectural Design Changes after sprint in progress
  4. Fixed Budget
  5. Non-Detailed Epics & Acceptance Criteria 
Successfully overcame by
  1. Understanding the complete Requirement & Design 
  2. Conducted Scrum of Scrum to get in touch with distributed team
  3. Conducted multiple workshops along with Business,Architects,Delivery teams and finalized the epics and acceptance criteria 
  4. Provided the re-estimations to get the approval on budget allocation

2. How do you manage and track user stories in Jira as scrum master ?

  1. Get it done to write effective user stories including task and  subtask 
  2. Configure scrum board to track the progress

3. Which cloud is your area of expertise and why ?

Got opportunity to work with below   
  1. Sales Cloud
  2. Service Cloud
  3. Community Cloud
Looking forward to work with Marketing Cloud

4. What's your responsibility as SFDC PM in a project?

  1. Understanding the project requirements 
  2. Providing the estimations 
  3. Resource Planning
  4. Highlighting the risks
  5. Identifying the blockers / dependencies
  6. Tracking the progress of the project
  7. Get in touch with team daily basis by participating in Scrum meetings
  8. Connect with business by showcasing the new features/ solutions to help them understanding how it improves their business by that can win new projects
  9. Publish project deployment dates to team 
  10. Run showcase after each sprint to business,Keep the recording as part of documentation
  11. Maintain the team members leave plan for best planning
  12. Provide cross skill trainings to the team 
  13. Understand the team members strengths & challenging area’s and groom accordingly
  14. Get it done, Project related documentation 
  15. Conduct Retrospects & Apply lessons learnt
  16. Create fun @ work environment

5. What components have you created and added in appexchange ?


App Exchange is the world's leading business app marketplace.
I have not yet created any but there is an idea for :
  1. Code Review tool
  2. Unsupported Metadata Types Deployment Refer
Used
  1. Config Workbook : To quickly extract Salesforce metadata in Excel files, Refer
  2. Highlighter : Highlighter for Salesforce allows you to highlight virtually any field or button on a page using conditional formatting.Refer

6. What challenges you faced during an implementation and how did you overcome it ?

  1. Missing components / Fields
  2. Test class code coverage falling down < 75%
  3. Multiple teams are deploying to same production 
  4. CICD - Profiles deployment was issue
  5. Unsupported Metadata Types,Refer
    To overcome
  1. Maintain implementation sheet & Add metadata component on every creation/updation
  2. Maintain 100% code coverage
  3. Maintain source code repository if multiple teams are deploying to same production & Maintain the communication between teams if any shared object / code is updating
  4. For any profile deployment,Retrieve from production and add the current changes and then deploy to production Which avoids the overriding of the production profiles
  5. Perform all the post deployment activities ,Maintain list of manual activities after deployment

7. What are the 3 vanilla scenarios that you have and how do you utilize them ?

Any product out of the box features called as vanilla scenarios
In Salesforce there are many available
Ex:
    1. Objects,Relationships, Workflows,Escalation rules
    2. Page Layouts
    3. Reports & Dashboards

8. What is your experience with SFDC DX; can you quantify the benefits ?

    

9. What is the extent of customization and configuration done in your project ?

It’s depends on project requirements,Customization is done only when something is not possible through OOB/Configuration.
Most of the projects which i worked had 40% Configuration &
                                                               60% Customization

10. What is the estimation technique used ?

Find the accurate estimations by conducting workshops with business, architects and delivery teams & Add 25 to 30% contingency to that by keeping unexpected huddles in mind.

11. What's your experience in poker card estimation ?
Since most of the projects handled by me are having distribution teams could not do this effectively.
But Yes,In the backlog grooming & Sprint planning session, The estimators discuss the feature, asking questions of the product owner as needed. When the feature has been fully discussed everyone gives their estimation and if any differences estimators discuss and share their reasons.

12. % effort split across phases - design through implementation ?


Requirement Gathering & Analysis
15%
Design & Solution
20%
Build
40%
Testing
20%
Implementation
5%

13. How do you prioritize the user stories for implementation ?
  1. Get the priority from business which functionality they would like to see 1st and plan to deliver incrementally in that order
  2. Find the user stories which is having dependency & Move to the sprint by when there will not be any dependency
  3. Start with the user stories which is clear and have finalized acceptance criteria and no dependency / blockers to progress
  4. While sprint planning conduct Prioritization meeting to refine the backlog and prioritize the task

14. How do you interact with the external teams for integration ?

  1. Understand what is the integration requirement
  2. Get the contact details of the external team
  3. Involve them in discussions to agree on what kind of  i/p accepts & what kind of o/p sends
  4. Finalize which authentication & authorization mechanisms accepted between these 2 systems [Salesforce & External System]
  5. Highlight if any limitations 
15. What is Spike in agile ?
In agile software development, a spike is a story that cannot be estimated until a development team runs a timeboxed investigation. The output of a spike is an estimate for the original story

16. Standup call, Prioritization meeting - what's the difference ?
Standup call to get the status on assigned task from each and every one of the team member Prioritization meeting happens while sprint planning to refine the backlog and prioritize the task

17. Which dual role best performs as a scrum master? Elaborate ?

The dual role of scrum master can be
  1. Coder + Scrum Master Role
  2. Tester + Scrum Master Role
  3. Business Analyst + Scrum Master Role
  4. Project Lead + Scrum Master Role
I see the 3rd & 4th options are the best performs as a dual role for scrum master,Because
  1. Will have complete requirements understanding and Quickly get all the required clarifications from product owner & Know the development ,testing  efforts and progress 
  2. If it is coder / tester performs this role difficult to get the complete picture of the project requirements.
18. What's your contribution on a daily basis as PM, Technically?
  1. Participating in daily Scrum, Business,Design & Solution meetings
  2. Providing inputs on few implementations based on other project experiences
  3. For the handling projects,Verify  the cost of Salesforce licenses & Proposing alternate options
  4. Arrange the technical training's based on business requirement and cross skill training the team members
19. What are the integration patterns you have worked on; what are the major integration activities you have done?
Below is the list of integration patterns & Got opportunity to work on all those.

Note: Remote call In is more secure pattern

Integration Pattern
Considerations
Example
Remote Process Invocation
  • Request and Reply
  • Synchronous
  • Small Data Volumes
  • Error handling
Order creation in SAP From Salesforce :
Details sent from SF and SAP returns Order Id to store that in SF.
Remote Process Invocation
  • Fire and Forget
  • Asynchronous
  • Outbound Messaging
  • Small Data Volumes
  • WF,trigger,batch
  • Idempotency
1. When new lead is created need to sent to external system.
2.Update email subscription
Remote Call In :This is inverse of above two types
  • SOAP or REST
  • Standard or Custom
  • State Management
  • Idempotency
  • Reliability
1.New community user creation
2.Getting the order details from other system
Batch Data Synchronization
  • Where is the Master
  • Middleware
  • Batch
  • Large Data Volumes
  • ETL
Billing details need to be sync with external system.
UI Update Based on Data Changes - Streaming API
  • Real Time
  • Partial Screen  Refresh
  • UI driven
Real-time provisioning
Lightning Connect
  • Additional cost
  • oData API
To link the Pre-Order to Order
-->Pre-Order object available in Salesforce
-->Order object available in external system [Postgres Database]
Force.Com Canvas
  • Canvas Apps should be built using web applications that you have control over
Plug in any web application in Salesforce.
Ex: Google Maps integration in Salesforce


20. Have you used lightning components; which ones and how ?
Created multiple
Ex: Knowledge articles & Report links display for a lightning community.
     Guided the team with lightning best practices & trainings on implementation.

21. How many implementations you have done and what is the max duration ?
As of now ,I have 10 implementations Max duration was 1 yr.

22. What security model you have used? With example ?

23. What edition of SF have you used and what's your recommendation ?

Edition
Cost
Personal Edition
Discontinued From 2009,
Existing organizations that have already set up Personal Edition continue to have access. In addition, Personal Edition organizations that signed up after June 2009 don’t have access to opportunities.
Contact Manager
$5/user/month
Group Edition
$25/user/month
Professional Edition
$65/user/month
Enterprise Edition
$125/user/month
Unlimited And Performance
$300/user/month
Developer Edition
Free

My recommendation is go through the below & Select the suitable edition for your project requirements.Refer

24. How many licenses you managed as a SF admin and how many users did it cater to ?

Everyone may not have option to login to production server in real time,Still can check the license information like below.
Ex: Full sandbox refreshed from production  copies all the users with assigned license details


25. What's your strategy while implementing/deploying 500+ users vs 50 users ?

Data loader - 500+ users & Same for 50 users But in case if it is 10 users use
“Add multiple users” option up to 10 ,Need to check unlimited edition limit for this option if allows 50

26. Which social media integrations you have done? What were the challenges and how did you overcome it.?

I have an idea of social media integrations from Salesforce,Details are mentioned below.


Social Studio : The best tool,Which is paid version (Pricing starts at $1,000/month.) & Doesn’t have free trial.
A new product that combines features from its Radian6 social-media-monitoring technology with the content publishing capabilities of its Buddy Media software for marketers.

AppExchange  App: Salesforce Twitter and Facebook


Free Apps : There are few free apps available for this integration,Refer
Facebook Toolkit :  Gives you direct access to the Facebook APIs from within Apex Code.