Saturday, October 3, 2020

Bankers or Cashiers check from Discover Bank

Bankers or Cashiers check from Discover Bank is totally free for Discover Bank account holders, all you need to do is call their 800 number (as of writing of this blog 800-347-7000, make sure you double check the number before calling Discover Bank).

Discover Bank Cashiers/ Bankers Check Issuer place would be Greenwood, DE if you need to fill any official form, as confirmed by customer service. Again all these information is for helping you all, please make sure to double check and confirm the information directly by calling Discover Bank.

Thursday, August 27, 2020

Wonders of MarkLogic Queries

MarkLogic Query needs every correct set of braces to return correct results. 

When using cts.search(cts.AndQuery[query1(), query2()]) using server side javascript - it was not throwing any error or complaining about braces just returning all the documents in the document store.

Talked to Derek@MarkLogic and he was able to quickly spot the error, a curly brace was missing and that did the trick, he said its a bug in MarkLogic and it will be fixed in upcoming releases.

Corrected the query as cts.search(cts.AndQuery([query1(), query2()])) and it worked like a charm.

Lessons learned, if you query is not working as expected, verify your braces as well.


MarkLogic content store Documents vs named store

All documents created under MarkLogic "Documents" store are universally indexed and can be searched without creating any index manually. However documents created in content store created in MarkLogic other than Documents i.e. "my-content-store", documents are not indexed by default. Appropriate type of indexes need to be created for the fields or path for "my-content-store" document store.

Path range indexes are one of the most common index type that is created to use in enterprise applications.

Path range index example1:  "address/state"

Search documents will be based on either of these: field1/address/state or address/state or field1/field2/address/state

Path range index example2:  "/address/state"

Search documents will be based on exact path : /address/state only

Sunday, August 23, 2020

Details of MarkLogic Connector for Kafka

How MarkLogic Kafka connector works and what it entails? 

MarkLogic has provided a connector to consume the messages out of a Kafka topic, calling as SINK process. 

Main Features:

- It's a Java utility and provided with community support, no enterprise support available.

- Connector consumes the messages out of Kafka topic and MarkLogic document names are unique but automatically generated UUIDs and cannot be changed. Although uri prefix and document extension is supported.

Example documents: AABC-WERE-UUID-THIS.json, uri/AABC-WERE-UUID-THIS.json

Had a conversation with MarkLogic original developer and he mentioned that the code can be updated to mend as needed but MarkLogic won't do it.

- Connector consumes the messages in batches periodically which can be configured, how frequently and how many to consume each time.

- It supports 2 Way SSL with candidate application

- It does not support AVRO format as of today and cannot validate the messages based on a schema


Documentation: https://www.marklogic.com/blog/kafka-marklogic-connector/

Github link: https://github.com/marklogic-community/kafka-marklogic-connector

Wednesday, August 19, 2020

How KStream, Ktable and Join works?

There were lot of unknowns or at least I was not knowing how KTable, KStreams and Join between them works or behaves when I started using these artifacts from Apache Kafka.

I would like to mention some of the unknowns that were not documented and we ran into issues because of them:

1. KTable stores the mapping as (key, value) pairs. Whenever there is an update to the key, the entire value object is getting replaced and it is not getting updated.

Example:

Key: A0001

Value: {id:001, name:ABC01}


Please keep visiting, will complete the post.